在开放的CSV中,withEscapeChar的正确用法是什么

时间:2019-09-13 16:14:11

标签: java opencsv

使用此代码作为我所看到的示例,我将转义字符设置为'&',但它似乎并未转义分隔符。我希望从此代码中获得3个元素的数组,因为我逃避了狗和猴子之间的逗号,但我却得到了4。我是否正确使用了此代码,因为我无法相信它根本行不通? / p>

javadoc说“设置用于转义分隔符或引号的字符”。所以我希望这能逃脱分隔符。

    import java.io.IOException;
    import java.io.StringReader;
    import java.util.Arrays;

    import com.opencsv.CSVParserBuilder;
    import com.opencsv.CSVReaderBuilder;

    public class EscapeTest {
        public static void main(final String[] args) throws IOException {

        new CSVReaderBuilder(new StringReader("fish,cat,dog&,monkey"))
            .withCSVParser(new CSVParserBuilder().withSeparator(',').withEscapeChar('&').build()).build().readAll()
            .forEach(item -> System.out.println(Arrays.toString(item)));
        ;

        }

    }

注意此输出给出:

[fish, cat, dog, monkey]

因此它已检测到我的转义字符并将其从字符串中删除,但它仍然继续执行,并将逗号视为分隔符。

0 个答案:

没有答案