有一个文件.txt包含:
国家,省/州,城市
所以我想使用","作为我的分隔符。但是,此文件的某些行具有:
国家,"名称1和名称2,省",城市
因此,使用逗号作为分隔符不能用作上述示例作为省名称中的逗号。
这是我的代码:
String path = workingDir + "/src/main_pkg/File.txt";
File file = new File(path);
Scanner sc = null;
try {
sc = new Scanner(file);
} catch (FileNotFoundException e) {
System.out.println(new File("."));
e.printStackTrace();
}
ObservableList<String> listOfProvinces = FXCollections.observableArrayList();
String country;
String state= "";
String lastState = "";
sc.useDelimiter(",");
while (sc.hasNext()) {
country = sc.next();
province = sc.next();
if (country.matches(countryComboBox.getValue())) {
if (!province.matches(lastState)) {
listOfStates.add(state);
lastState = state;
}
}
sc.nextLine();
}
sc.close();
澄清一下,我无法修改 txt 文件。
我找到了解决方案。我不得不将分隔符更改为:
sc.useDelimiter("(?!"),(?!")");
我从: https://stackoverflow.com/a/1757146/12179513 来自 Java 的答案:拆分逗号分隔的字符串但忽略引号中的逗号也可以,但它使我的程序需要更长的时间来运行。