当我退出代码时,我试图将单词、它们的词性和定义保存到文件中,然后在下次重新打开代码时读回它们。这是我的保存行:
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();
关于java - (Java) 从文件读取时如何跳过空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60687444/