java Scanner類的幾點注意事項
1.Scanner類的next(),nextInt(),nextDouble()等方法以空白符為分隔符(如空格)來讀取資料
2.Scanner類物件接連使用read.next(),read.nextLine()
如:
Scanner read = new Scanner(System.in);
System.out.println("請輸入內容:");
System.out.print(read.next());
System.out.println("請再次輸入內容:");
System.out.print(read.nextLine());
System.out.println("輸入已經結束!");
執行結果:
請輸入內容:12
12
請再次輸入內容:
輸入已經結束!
第二次沒有機會輸入程式就已經結束了!
若要能有機會輸入必須再次例項化read物件,第二次輸入前新增read = new Scanner(System.in);
但若是nextLine()方法在前,.next()方法在後在不存在該問題,程式會停下來等待使用者第二次輸入
3.Scanner類的hasNext()方法注意事項
public static void main(String[] args) {
int i = 0;
Scanner read = new Scanner(System.in);
System.out.print("請輸入內容:");
while(read.hasNext()){
System.out.println(i++);
System.out.println(read.next());
}
System.out.println("輸入結束。。。");
}
程式將進入輸入的死迴圈,一直要求使用者進行輸入,最後的輸出語句將不會被執行。
可以只用如下方法解決,不過要事先確定輸入的型別
public static void main(String[] args) {
int i = 0;
Scanner read = new Scanner(System.in);
System.out.print("請輸入內容:");
while(read.hasNextInt()){
System.out.println(i++);
System.out.println(read.next());
}
System.out.println("輸入結束。。。");
}
這樣當輸入的內容不是int型別是就會跳出while迴圈!