使用Scanner類獲取輸入,連續獲取int類型和String類型數據時候,發生錯誤。
Scanner sc = new Scanner(System.in); System.out.println("輸入int類型"); int a = sc.nextInt(); System.out.println("輸入String類型"); String s = sc.nextLine(); System.out.println(a); System.out.println(s);
System.out.println("運行完畢");
運行結果,輸入5后回車,直接運行完畢,請求輸入String被跳過。
原因,輸入5后的回車,被系統誤判斷是請求輸入s的String。於是運行完畢。
解決方案:
1)使用一個新的Scanner對象獲取String.
Scanner sc = new Scanner(System.in); System.out.println("輸入int類型"); int a = sc.nextInt(); Scanner sc2 = new Scanner(System.in); System.out.println("輸入String類型"); String s = sc2.nextLine(); System.out.println(a); System.out.println(s); System.out.println("運行完畢");
2)在nextInt后面加入一個nextLine(),不進行賦值。
Scanner sc = new Scanner(System.in); System.out.println("輸入int類型"); int a = sc.nextInt(); sc.nextLine(); //不進行賦值,接受回車 System.out.println("輸入String類型"); String s = sc.nextLine(); System.out.println(a); System.out.println(s); System.out.println("運行完畢");
撰寫時間:2017-08-20 14:43:10
修改時間:2017-08-20 14:51:12
end;