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

时间:2013-05-31 00:34:44

标签: 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”。

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

1 个答案:

答案 0 :(得分:2)

Scanner#nextInt仅使用整数输入,因此剩余的String将包含前导空格。你需要修剪这个角色

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