You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Santhsoh (Jira)" <ji...@apache.org> on 2021/09/07 03:25:00 UTC

[jira] [Commented] (CSV-288) String delimiter (||) is not working as expected.

    [ https://issues.apache.org/jira/browse/CSV-288?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17410905#comment-17410905 ] 

Santhsoh commented on CSV-288:
------------------------------

Failing test case :
{code:java}


org.apache.commons.csv.CSVParserTest#testParseWithDoublePipeDelimiter@Test

    public void testParseWithDoublePipeDelimiter() throws Exception {
        final Reader in = new StringReader("a||b||c||d||||f");
        StringBuilder stringBuilder = new StringBuilder();
        try (CSVPrinter csvPrinter = new CSVPrinter(stringBuilder, CSVFormat.EXCEL);
             CSVParser csvParser = CSVParser.parse(in, CSVFormat.Builder.create().setDelimiter("||").build())) {
            for (CSVRecord csvRecord : csvParser) {
                for (int i = 0; i < csvRecord.size(); i++) {
                    csvPrinter.print(csvRecord.get(i));
                }
                assertEquals("a,b,c,d,,f", stringBuilder.toString());
            }
        }
    }{code}

> String delimiter (||) is not working as expected.
> -------------------------------------------------
>
>                 Key: CSV-288
>                 URL: https://issues.apache.org/jira/browse/CSV-288
>             Project: Commons CSV
>          Issue Type: Bug
>            Reporter: Santhsoh
>            Priority: Major
>
> Steps to reproduce  : 
> 1. Parse CSV file with || as delimiter and having empty columns
> 2. Print the CSVRecord resulting from CSVParser
>  
> //Expected : a,b,c,d,,f,g 
> // Actual : a,b|c,d,|f,g
> public static void main(String[] args) throws Exception\{
>      String row = "a||b||c||d||||f||g";
>      StringBuilder stringBuilder = new StringBuilder();
>      try (CSVPrinter csvPrinter = new CSVPrinter(stringBuilder, CSVFormat.EXCEL);
>           CSVParser csvParser = CSVParser.parse(new StringInputStream(row), StandardCharsets.UTF_8, CSVFormat.Builder.create().setDelimiter("||").build())) {
>          for (CSVRecord csvRecord : csvParser) {
>              for (int i = 0; i < csvRecord.size(); i++) {
>                  csvPrinter.print(csvRecord.get(i));
>              }
>              System.out.println(stringBuilder.toString());
>              //Expected : a,b,c,d,,f,g
>             // Actual : a,b|c,d,|f,g
>          }
>      }
>  }
> With the snippet provided above, actual value is not same as expected value



--
This message was sent by Atlassian Jira
(v8.3.4#803005)