我正在尝试退出代码时将单词,其词性和定义保存到文件中,然后在下次重新打开代码时将它们读回。这是我的保存行:
WordListPrinter.println(name + " " + partOfSpeech + " " + definition);
这是我读取的代码
while(readFromFile.hasNextLine()){
String name = readFromFile.next();
String POS = readFromFile.next();
String definition = readFromFile.nextLine();
}
每次运行代码时,它都会在definition
上添加一个空格,因为String definition = readFromFile.nextLine();
部分从保存行读取了" " + definition
。我尝试过
while(readFromFile.hasNextLine()){
String name = readFromFile.next();
String POS = readFromFile.next();
String useless = readFromFile.next();
String definition = readFromFile.nextLine();
}
删除空格,但删除了空格和定义的第一个单词。我也尝试过char useless = readFromFile.next().charAt(0);
,但是只是将空间保存到useless
,并且无论如何都删除了定义的第一个单词。我有没有办法在不删除第一个单词的情况下扫描并删除空格?
“问题”来自next()
与nextLine()
调用的混合,是“预期行为”。 (javadoc)
摆脱空白:
您可以(如果适用)一致地使用我们next()
(没有nextLine()
),所以:
String definition = readFromFile.next();
[String.trim绝对正确”(从字符串中删除结尾的空格):
String definition = readFromFile.nextLine().trim();