在使用它们之前,请尝试检查doc.
原因:
Scanner.nextLine : The java.util.Scanner.nextLine() method advances this scanner past the current line and returns the input that was skipped. This method returns the rest of the current line, excluding any line separator at the end. The position is set to the beginning of the next line.Since this method continues to search through the input looking for a line separator, it may buffer all of the input searching for the line to skip if no line separators are present.
虽然,这不适用于Scanner.nextInt
因此,Scanner.nextInt方法不会消耗输入的最后一个换行符,因此在下次调用Scanner.nextLine时会消耗该换行符.
基本解决方案是在Scanner.nextInt之后使用空白的Scanner.nextLine来消耗该行的其余部分,包括换行符.
例如
int myVal1 = input.nextInt();
input.nextLine();
String myStr1 = input.nextLine();