Java 循环未正确循环时使用分隔符
我有一个包含以下内容的文件: 123412 345634 124645 我只想得到每行逗号前的数字,并将它们添加到我的arrayList中。为什么我的代码只正确地添加了第一个数字(123),而没有继续添加其余的数字Java 循环未正确循环时使用分隔符,java,java.util.scanner,Java,Java.util.scanner,我有一个包含以下内容的文件: 123412 345634 124645 我只想得到每行逗号前的数字,并将它们添加到我的arrayList中。为什么我的代码只正确地添加了第一个数字(123),而没有继续添加其余的数字 try { File input = new File(filename); in = new Scanner(input); in.useDelimiter(","); while(i
try {
File input = new File(filename);
in = new Scanner(input);
in.useDelimiter(",");
while(in.hasNextLine()) {
someArrayList.add(Integer.parseInt(in.next()));
}
如果你只想在逗号前加上数字,那就把整行分开。这不需要使用分隔符
Scanner input = new Scanner(new File(filename));
while(input.hasNextLine()) {
String firstThreeDigits = input.nextLine().split(",")[0]
someArrayList.add(Integer.parseInt(firstThreeDigits));
}
这里有两个错误:
-检查此扫描仪的输入中是否有其他行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
结果行。这里我使用nextLine
来使用该行,然后使用regex,
try {
File input = new File(filename);
in = new Scanner(input);
while(in.hasNextLine()) {
someArrayList.add(
Integer.parseInt(in.nextLine().split(",")[0].replace("\\s+", "")));
}
取行,使用“,”拆分,得到第一个元素,并将所有空白替换为零@AlexandreLavoie:他们已经在使用
.next()
,这是副本中规定的。当我以这种方式尝试时,我得到:java.lang.NumberFormatException:用于输入字符串:“412”。412后面有一个新行,最后一个引号在下一行。@AlldaRage您可以将其更改为\\s+
而不是\n
或调用String\trim()
对next()
中的每个值执行此操作!您能告诉我为什么split语句后面有[0]吗?另外,对于逗号后的数字,您将如何执行此操作?split
返回一个字符串数组<代码>[0]是第一个元素。如果需要第二个元素,则必须将该行存储到临时字符串中,然后将其拆分,并通过[1]
索引到其中。