java - 添加到以下字符串的空格分隔符

标签 java string java.util.scanner space delimiter

因此,我使用 Scanner 来解析以空格和换行符分隔的文本文件。每行都有一个加载到数组中的索引号和一个字符串,该字符串是与数组的该成员相对应的标签,如下所示:

0 Sydney
1 Alice Springs
2 Canberra
3 Bathurst
4 Orange

我使用以下代码来读取文件:

public void readIndex (String indexFile)
{
    int i = 0;
    String label = null; 

    InputStream input = getClass().getResourceAsStream(indexFile);

    Scanner parser = new Scanner(input);

    parser.useDelimiter(" ");

    while (parser.hasNextLine())
    {
        i = parser.nextInt();
        label = parser.nextLine();

        this.setLabel(i, label);
    }
}

最后,打印结果的代码:

System.out.println("Cities loaded:");    

for (int i = 0; i < cities.vertexCount(); i++)
    {
        System.out.println(cities.getLabel(i));
    }

字符串显示正常,但每个标签似乎都有一个前导空格。这是输出:

Cities loaded:
 Sydney
 Alice Springs
 Canberra
 Bathurst
 Orange

例如,第一个字符串存储为“Sydney”。

这是我的分隔符设置的问题,还是我错过了其他非常明显的东西?提前致谢!

最佳答案

Scanner#nextInt 仅消耗整数输入,因此剩余的 String 将包含前导空格。您需要修剪这个字符

label = parser.nextLine().trim();

关于java - 添加到以下字符串的空格分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16848070/

相关文章:

java - 方法同步,但由于非序列化线程行为,代码产生随机结果

java - 简单的 PingPong 程序和字符串问题

java - 这是后缀计算器程序,我遇到无法识别的操作数错误

java - JPA/hibernate : call stored procedure with input and output parameters

java - “DataNucleus 增强器”错误 206

java - XSD 未验证 - udemy 28 分钟内

PHP 日语字符串设置为?

c++ - 删除第一个括号 "("和最后一个括号 "("之间的字符串中的所有字符,包括这些括号 C++

java - 根据选定的字符数拆分 ArrayList 中的字符串

java - 如何从文本文件加载并执行java命令