在 txt 文件中的三个字符串之间使用逗号作为分隔符.但是文件中的某些行在第二个字符串中有一个逗号



有一个文件.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 的答案:拆分逗号分隔的字符串但忽略引号中的逗号也可以,但它使我的程序需要更长的时间来运行。

最新更新