为什么 useDelimiter 会那样工作?
Why is the useDelimiter works like that?
我一直在尝试读取包含任何文本文件的文件夹,如下所示:
K.Love,CLE,miss,2
K.Leonard,TOR,miss,2
K.Love,CLE,make,1
...
我正在做一些测试,出于某种原因,当我使用 useDelimeter
忽略或使逗号消失时,我遇到了一个问题。我先展示代码:
import java.io.*;
import java.util.*;
public class test {
public static void main(String[] args) throws FileNotFoundException {
File inputFile = new File("src\main\resources\games\game1.txt");
Scanner reader = new Scanner(inputFile);
reader.useDelimiter(",");
ArrayList<String> names = new ArrayList<>();
while (reader.hasNext()) {
String input = reader.next();
names.add(input);
}
System.out.println(names.get(3));
reader.close();
}
}
当控制台在位置 3 打印 arrayList 时,我期望的是:
K.Leonard
但它打印的不是:
2
K.Leonard
当我将位置更改为数字 4 时,它会打印:TOR
(这是一个团队的名称)。
您将分隔符定义为 ,
,这意味着换行符不再是分隔符。要获得您期望的行为,您可以使用正则表达式,其中 ,
或换行符被视为分隔符:
reader.useDelimiter("[,\n]");
我一直在尝试读取包含任何文本文件的文件夹,如下所示:
K.Love,CLE,miss,2
K.Leonard,TOR,miss,2
K.Love,CLE,make,1
...
我正在做一些测试,出于某种原因,当我使用 useDelimeter
忽略或使逗号消失时,我遇到了一个问题。我先展示代码:
import java.io.*;
import java.util.*;
public class test {
public static void main(String[] args) throws FileNotFoundException {
File inputFile = new File("src\main\resources\games\game1.txt");
Scanner reader = new Scanner(inputFile);
reader.useDelimiter(",");
ArrayList<String> names = new ArrayList<>();
while (reader.hasNext()) {
String input = reader.next();
names.add(input);
}
System.out.println(names.get(3));
reader.close();
}
}
当控制台在位置 3 打印 arrayList 时,我期望的是:
K.Leonard
但它打印的不是:
2
K.Leonard
当我将位置更改为数字 4 时,它会打印:TOR
(这是一个团队的名称)。
您将分隔符定义为 ,
,这意味着换行符不再是分隔符。要获得您期望的行为,您可以使用正则表达式,其中 ,
或换行符被视为分隔符:
reader.useDelimiter("[,\n]");