Как бороться с запятой в цитате для файла CSV в Java? - PullRequest
2 голосов
/ 19 января 2012

Я использую opencsv для чтения файла CSV. Поля разделены запятой. Но в одном поле, если оно содержит кавычку, запятая внутри кавычки не является разделителем. Например, «Привет, мир».

Текущий opencsv не может справиться с этим. Как решить эту проблему?

обновление

Я обнаружил, что это не проблема запятой (пока). Строка проблемы: ...,"a children""s heart\",.... Кажется, что удаляется кавычка, поэтому поле чтения становится a children"s heart",......, а ...... представляют все следующие данные.

Кажется, проблема не в opencsv, а в беспорядке входных данных.

Ответы [ 2 ]

2 голосов
/ 19 января 2012

Вы можете написать собственный код для поиска в файле csv и заменить все запятые, которые находятся внутри кавычек, на или, или специальный символ, который вы можете позже идентифицировать и поместить обратно в качестве запятой.

0 голосов
/ 19 января 2012

В соответствии с документацией, вы можете указать в конструкторе собственный разделитель и символы кавычек, которые должны с этим справиться:

CSVReader(Reader reader, char separator, char quotechar)

Создайте свой читатель с , как separator и " как quotechar.

...