所以,我正在使用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”。
这是我的分隔符设置的问题,还是我错过了其他非常明显的东西?提前谢谢!
答案 0 :(得分:2)
Scanner#nextInt
仅使用整数输入,因此剩余的String
将包含前导空格。你需要修剪这个角色
label = parser.nextLine().trim();