我有一个包含这样内容的文件:
123412
345634
124645
我想在每行中的逗号前面加上数字,然后将它们添加到我的arrayList中。为什么我的代码只能正确添加第一个数字(123),但是没有继续添加其余数字?
try {
File input = new File(filename);
in = new Scanner(input);
in.useDelimiter(",");
while(in.hasNextLine()) {
someArrayList.add(Integer.parseInt(in.next()));
}
答案 0 :(得分:0)
如果只想要逗号之前的数字,那么只需将整行分开即可。没有必要使用分隔符。
Scanner input = new Scanner(new File(filename));
while(input.hasNextLine()) {
String firstThreeDigits = input.nextLine().split(",")[0]
someArrayList.add(Integer.parseInt(firstThreeDigits));
}
答案 1 :(得分:0)
这里有两个错误:
in.hasNextLine()
- 这是检查此扫描仪输入中是否有另一行in.useDelimiter(",");
- 如果您不断致电假设您的输入文件是逐行的,您可以将上述两个内容更改为:
File input = new File(filename);
in = new Scanner(input);
in.useDelimiter(",|\n");
while (in.hasNext()) {
someArrayList.add(Integer.parseInt(in.next()));
}
我认为更好的方法是使用readLine
,然后使用String.split
生成的行。
答案 2 :(得分:0)
我在这里使用nextLine
来使用该行,然后使用正则表达式进行拆分,
try {
File input = new File(filename);
in = new Scanner(input);
while(in.hasNextLine()) {
someArrayList.add(
Integer.parseInt(in.nextLine().split(",")[0].replace("\\s+", "")));
}
取线,用“,”分割,得到第一个元素,并用空格替换所有空格