java 中的整数后输入字符串出错

error in taking input string after integer in java

我正在尝试这样做:

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
   .
   .
   .
}

流中有一个换行符。使用@moffeltje 的代码或者试试这个:

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