有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JAVAutil。scanner(Java)读取文件时如何跳过空格?

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

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的空间,并删除了定义中的第一个单词。有没有一种方法可以让我在不删除第一个单词的情况下扫描并删除空格


共 (1) 个答案

  1. # 1 楼答案

    “问题”来自next()nextLine()调用的混合,是“预期行为”。(javadoc

    要消除空白:

    • 你可以(如果适用的话)一直给我们next()(没有nextLine()) ,所以:

      String definition = readFromFile.next();
      
    • String.trim是“永不出错”(从字符串中删除尾随空格):

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