#Scanner對象 java.util.Scanner是java5的特征,可以通過Scanner類來獲取用戶的輸入。 基本語法: 通過Scanner類的next()與nextLine()方法獲取輸入的字元串,在讀取前一般需要使用hasNext()與hasNextLine()判斷是否還有輸入的數據。 ...
Scanner對象
- java.util.Scanner是java5的特征,可以通過Scanner類來獲取用戶的輸入。
- 基本語法:
- 通過Scanner類的next()與nextLine()方法獲取輸入的字元串,在讀取前一般需要使用hasNext()與hasNextLine()判斷是否還有輸入的數據。
next()
- 一定要讀取到有效字元才能結束輸入。
- 對輸入有效字元之前的空白,next()方法會自動將其去掉,這裡的空白是指字元之前的空白,有效字元之前輸入空格不影響讀取到有效字元。
- 只有輸入有效字元後才將其之後的空白作為分隔符或者結束符,這裡的空白指空格或回車。
- next()不能得到帶有空格的字元串。
例:輸入如下代碼
import java.util.Scanner;//這裡就引用了上文所寫的java5的特征
public class Demo01 {
public static void main(String[] args) {
//創建一個掃描器對象,用於接收鍵盤數據
Scanner scanner = new Scanner(System.in);
System.out.println("Receive in next mode:");
//判斷用戶有沒有輸入字元串
if (scanner.hasNext()){
//使用next接收
String str=scanner.next();//這段代碼一旦執行,程式會等待用戶輸入完畢
System.out.println("The output is:"+str);
}
//凡是使用IO流的類如果不關閉會一直占用資源,用完就關掉
scanner.close();
}
}
收到返回信息
鍵入Hello World,回車確定,就得到了輸出結果,但是只得到了Hello,next()不能得到帶有空格的字元串。
nextLine()
- 以enter為結束符,也就是說nextLine()方法返回的是輸入回車之前的所有字元。
- 可以獲得空白
繼續上面的例子,重新鍵入上面那一串代碼,只不過將方法從next()改為nextLine()。
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Receive in nextLine mode:");
if (scanner.hasNextLine()){
String str=scanner.nextLine();
System.out.println("The output is:"+str);
}
scanner.close();
}
}
然後就能輸出完整的輸入內容了。
最後
上面的代碼中的if可以省略
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Receive in nextLine mode:");
String str=scanner.nextLine();
System.out.println("The output is:"+str);
scanner.close();
}
}
那串if只是說明可以用來判斷用戶有沒有輸入字元串,但是既然代碼都已經跑起來了,那麼這句if等於是脫褲子放屁……