Java Карта Уменьшить Сплит Метод - PullRequest
1 голос
/ 02 мая 2020

Предположим, у нас есть файл .csv, как показано ниже:

Country,num1,num2,remarks
USA, 1, 1, string 1
USA, 1, 2, "string 2, string 3, string 1"

Мне нужно разбить каждую строку для задачи уменьшения карты. «Проблема», как вы можете видеть, заключается в том, что, если в поле примечаний есть запятые, поставщик файла вставляет двойные кавычки вокруг строки (я вижу двойные кавычки, когда открываю файл в текстовом редакторе). Есть ли способ разделить поле замечаний?

Моя последняя цель - создать ключи со значениями, как показано ниже:

USA, string 1
USA, string 2
USA, string 3
USA, string 1

Предполагая, что у меня есть переменная с именем line, которая содержит всю строку строки, я пробовал что-то подобное:

String [] temp;
temp = line.split(",");

, но в этом случае temp [3] имеет значение string 2, а не значение

string 2, string 3, string 1

1 Ответ

1 голос
/ 03 мая 2020

После (долгого) поиска я обнаружил похожую проблему здесь , которая помогает.

На практике следует использовать это регулярное выражение:

String[] tokens = line.split(",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)", -1);

, чтобы считать "string 2, string 3, string 1" полем c.

Спасибо, сообщество!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...