我想要做的是允許用戶輸入名字和姓氏。允許用戶輸入第一個名字,但沒有問題,但一旦命中空格並輸入姓氏,它會給我標題中提到的錯誤。Java - java.util.InputMismatchException
public static void main(String args[])
{
Scanner sc = new Scanner(System.in);
int choice,
String name, stuNum;
do
{
System.out.println("");
System.out.println("Student Grade System");
System.out.println("----------------------\n");
System.out.println(" 1) Enter student details");
System.out.println(" 2) Display student grades");
System.out.println(" 3) Display student statistics");
System.out.println(" 4) Display full transcript");
System.out.println(" 0) Exit System\n");
System.out.print("Select an option [0-4] >> ");
choice = sc.nextInt();
System.out.println("");
switch(choice)
{
case 1:
System.out.println("Entering Student Details");
System.out.println("------------------------");
System.out.print(" Student name: ");
name = sc.next(); //somewhere here it messes up
System.out.print(" Student number: ");
stuNum = sc.next();
}
}while(choice !=0);
}
這是我剛剛開始編寫代碼的最低限度,但是這個問題阻止了我繼續前進。我已經嘗試使用sc.nextLine();並將變量stuNum更改爲一個int變量。兩者都不起作用。它提供了完整的錯誤如下:
java.util.InputMismatchException at java.util.Scanner.throwFor(Scanner.java:840) at java.util.Scanner.next(Scanner.java:1461) at java.util.Scanner.nextInt(Scanner.java:2091) at java.util.Scanner.nextInt(Scanner.java:2050) at Project.main(Project.java:40)
嘗試,而不是下一個nextLine()() – Michael 2014-11-03 17:46:18
我說,我已經試過了。但是,我會再試一次。你想去哪裏去取代它?在兩個變量?或者只是名稱變量? – 2014-11-03 17:47:25
我只是在我的機器上測試了你的程序,我沒有收到任何錯誤(除了在'choice'的定義之後有''',而不是';'。你確定你給我們展示了相同的你有什麼版本? – RealSkeptic 2014-11-03 18:02:28