@Test public void testDoubleQuotes() { final CsvLineParser parser = new CsvLineParser(); final String s = "a,\"\"\"b\"\"\",c"; final List<String> list = parser.parse(s); assertEquals(3, list.size()); assertEquals("a", list.get(0)); assertEquals("\"b\"", list.get(1)); assertEquals("c", list.get(2)); }
@Test public void testSimpleLineParse() { final CsvLineParser parser = new CsvLineParser(); final String s = "a,b,c"; final List<String> list = parser.parse(s); assertEquals(3, list.size()); assertEquals("a", list.get(0)); assertEquals("b", list.get(1)); assertEquals("c", list.get(2)); }
private Stream<CsvLine> parseToCsvLine(InputStream is) { CsvLineParser lineParser = new CsvLineParser( formatter.getQuoteChar(), formatter.getEscapeChar(), formatter.getFieldSeparator()); int skipCount = formatter.isHeaderRequired() ? 1 : 0; AtomicInteger lineNum = new AtomicInteger(skipCount + 1); return parseToLine(is) .skip(skipCount) .map( line -> { int i = lineNum.getAndIncrement(); try { return new CsvLine(i, lineParser.parse(line)); } catch (Exception e) { return new CsvLine(i, new LineParseException(e)); } }); }