1. 程式人生 > >java Scanner類的幾點注意事項

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迴圈!