使用此代码作为我所看到的示例,我将转义字符设置为'&'
,但它似乎并未转义分隔符。我希望从此代码中获得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]
因此它已检测到我的转义字符并将其从字符串中删除,但它仍然继续执行,并将逗号视为分隔符。