2.同樣對於nextInt()、nextDouble()等和next一樣一定要讀取到有效字符後纔可以結束輸入,對輸入有效字符之前遇到的空格鍵、Tab鍵或Enter鍵等結束符,next()方法會自動將其去掉,只有在輸入有效字符之後,next()方法纔將其後輸入的空格鍵、Tab鍵或Enter鍵等視爲分隔符或結束符。
3.所以如果next()或者nextInt()等下面有nextLine()時,中間要再加一句nextLine()用來接收next()或者nextInt()等過濾的回車、tab、空格。這樣才能讓下面的nextLine()生效,否則它就接收了enter、tab、空格等,導致用戶沒有輸入就結束了。
eg:
下面的就是錯誤的:
System.out.println("請輸入編號:");
int num=sc.nextInt();
System.out.println("請輸入姓名;");
String name=sc.nextLine();
這樣在輸入的時候,輸入編號之後,按enter鍵,發現name是空的,其實name存儲的是被sc.nextInt()當作結束符的enter。
正確的是:
System.out.println("請輸入編號:");
int num=sc.nextInt();
sc.nextLine();//接收被過濾的enter
System.out.println("請輸入姓名;");
String name=sc.nextLine();