首页 > 解决方案 > 在 txt 文件中,在三个字符串之间使用逗号作为分隔符。但是文件中的某些行在第二个字符串中有逗号

问题描述

有一个 file.txt 包含:

国家、省/州、城市

所以我想用“,”作为我的分隔符。但是,此文件的某些行具有:

Country,"Name1 和 Name2, Province of",City

因此,使用逗号作为分隔符不会像上面的示例那样作为省名称中的逗号起作用。

这是我的代码:

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 文件。

标签: java

解决方案


我找到了解决方案。我不得不将分隔符更改为:

sc.useDelimiter("(?!\"),(?!\")");

我从中得到:https ://stackoverflow.com/a/1757146/12179513 Java的答案:拆分逗号分隔的字符串但忽略引号中的逗号也可以,但这会使我的程序运行时间更长。


推荐阅读