java - (Java) 从文件读取时如何跳过空格?

标签 java java.util.scanner

当我退出代码时,我试图将单词、它们的词性和定义保存到文件中,然后在下次重新打开代码时读回它们。这是我的保存行:

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/

相关文章:

java - 重新定义扫描仪的非数字识别?

Java读取txt文件到hashmap,按 ":"分割

java - Hibernate 注释不适用于 getter 但适用于属性

java - Android Job Scheduler 作业在应用程序关闭后不执行

java - 在 XML 的 onClick 事件中,我们给出一个方法名称,该文档必须位于哪个 java 文件中?

java - 复制粘贴时扫描仪出现问题,但原始程序可以运行

java - 扫描仪可以读取不同类型的输入吗

java - Eclipse异常: java. lang.ClassNotFoundException

java - Android 谷歌地图在生产时显示白屏

java.util.Scanner 和维基百科