因此,我使用 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/