Apache Commons CSV: цитируемый ввод не работает

import java.io.IOException;
import java.io.StringReader;

import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;

Я пытаюсь проанализировать простой CSV-файл с анализатором Apache CSV. Это работает нормально, пока я не использую кавычки. Когда я пытаюсь добавить цитату на вход

"a";42

это дает мне ошибку:

invalid char between encapsulated token and delimiter

Вот простой, полный код:

public class Test {

    public static void main(String[] args) throws IOException {
        String DATA = "\"a\";12";
        CSVParser csvParser =    
        CSVFormat.EXCEL
            .withIgnoreEmptyLines()
            .withIgnoreHeaderCase()
            .withRecordSeparator('\n').withQuote('"')
            .withEscape('\\').withRecordSeparator(';').withTrim()
            .parse(new StringReader(DATA));
    }

}

Я просто не могу узнать, что я пропустил в коде.

1 ответ

Проблема была настолько тривиальной, что я ее пропустил.

я использовал withRecordSeparator вместо withDelimiter установить разделитель полей.

Это работает, как я ожидал:

public class Test {

    public static void main(String[] args) throws IOException {
        String DATA = "\"a\";12";
        CSVParser csvParser =    
        CSVFormat.EXCEL
            .withIgnoreEmptyLines()
            .withIgnoreHeaderCase()
            .withRecordSeparator('\n').withQuote('"')
            .withEscape('\\').withDelimeter(';').withTrim()
            .parse(new StringReader(DATA));
    }

}

Другие вопросы по тегам