我正在尝试这样做:

int n = myScanner.nextInt();
for(int i=0;i<n;i++){
   String str = myScanner.nextLine();
   .
   .
   .
}


当我编译时,它显示一些错误java.util.Scanner.nextInt(Scanner.java:2117)。
最初,我认为这是nextLine()的问题,所以我使用了next()。然后我发现在输入n后我是否添加myScanner.nextLine()

    int n = myScanner.nextInt();
    myScanner.nextLine();


然后工作正常。我想知道为什么会这样吗?

最佳答案

传递整数时,您需要使用输入的换行符:

int n = myScanner.nextInt(); //gets only integers, no newline
myScanner.nextLine(); //reads the newline
String str;
for(int i=0;i<n;i++){
   str = myScanner.nextLine(); //reads the next input with newline
   .
   .
   .
}

10-07 23:04