疑難雜症:Java中Scanner連續獲取int和String型發生錯誤.


使用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;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM