(Java) 如何在读取文件时跳过 space?

(Java) How can I skip a space when reading from a file?

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

WordListPrinter.println(name + " " + partOfSpeech + " " + definition);

这是我读过的代码

while(readFromFile.hasNextLine()){
            String name = readFromFile.next();
            String POS = readFromFile.next();
            String definition = readFromFile.nextLine();
}

每次我 运行 代码时,它都会向 definition 添加一个 space,因为 String definition = readFromFile.nextLine(); 部分从保存行读取 " " + definition .我试过了

while(readFromFile.hasNextLine()){
            String name = readFromFile.next();
            String POS = readFromFile.next();
            String useless = readFromFile.next();
            String definition = readFromFile.nextLine();
}

去掉了space,但是去掉了space和定义的第一个字。我也试过 char useless = readFromFile.next().charAt(0);,但只是将 space 保存到 useless 并删除了定义的第一个词。有没有办法让我在不删除第一个单词的情况下扫描并删除 space?

"problem" 来自混合 next()nextLine() 调用,并且是 "expected behavior"。 (javadoc)

去除空白:

  • 您可以(如果适用)始终如一地使用 next()(没有 nextLine()) , 所以:

    String definition = readFromFile.next();
    
  • String.trim 是 "never wrong"(从字符串中删除尾随白色 space):

    String definition = readFromFile.nextLine().trim();