首先,你对接受的输入什么都不做,只是忽略它来接受下一个输入。
其次,scanner.nextLine()
返回下一行读取的字符串。要单独获取令牌,您需要拆分string
读取以获取它们。
第三,你应该检查你的 while,无论你是否有下一个输入scanner#hasNextLine
,如果它等于true
,那么只有你应该在你的 while 循环中读取你的输入。
如果要分别读取每个令牌,最好使用Scanner#next
方法,该方法返回下一个读取的令牌。
此外,您想阅读integers
and strings
,因此您还需要测试是否有整数。您需要为此使用Scanner#hasNextInt
方法。
好的,因为您想在每一行上单独integer
阅读。string
您可以尝试以下方法:-
while (scanner.hasNextLine()) { // Check whether you have nextLine to read
String str = scanner.nextLine(); // Read the nextLine
if (str.equals("stop")) { // If line is "stop" break
break;
}
String[] tokens = str.split(" ", 1); // Split your string with limit 1
// This will give you 2 length array
int firstValue = Integer.parseInt(tokens[0]); // Get 1st integer value
String secondString = tokens[1]; // Get next string after integer value
}