1、HasNext和HasNextLine會要求用戶在控制台輸入字符,然后回車,把字符存儲到Scanner對象中,不會賦值到變量中,可以用於判斷輸入的字符是否符合規則要求。
HasNext會以空格為結束標志,空格后的數字會拋棄掉。
HashNextLine會以Enter為結束標志
2、Next和NextLine是直接從Scanner中獲取HasNext和HasNextLine存儲起來的值給到變量中。如果前面沒有HasNext或者HashNextLine獲取值,也可以自己獲取用戶在控制台中輸入的字符。
3、建議先用HashNext或者HasNextLine獲取用戶在控制台要求輸入的字符。再用Next或NextLine從Scanner中獲取值到程序變量中。目的是做一重字符非法的判斷
1 public static void main(String[] args) {
2 Scanner scanner = new Scanner(System.in);
3
4 System.out.println("測試scanner方法的使用邏輯");
5 System.out.println("請輸入一個整數");
6
7 if(scanner.hasNextInt()){
8 System.out.println("進來了嗎");
9 int i=scanner.nextInt();
10 System.out.println("獲得輸入的數值是"+i);
11 }else{
12 System.out.println("不是整數");
13 }
14 }
解析1:第七行:如果用戶輸入是整型,會進入8行,第9行獲取的值是hasNextInt預先存儲到scanner的值
解析2:第七行:如果用戶輸入的不是整型,則會跳到12行中執行