根据给定的定界符拆分字符串,忽略双引号部分

Split the string based on given delimeter ignoring double quted part

我需要根据分隔符将字符串拆分为子字符串。 这是一个代码:

String[] fields = line.split(Pattern.quote(CSV_DELIMITER)); //CSV_DELIMITER=","

我得到以下行“1234,"dfd, ddss",35345” 预期是结果将有 3 个字段:1234、"dfd, ddss"、35345,但它有 4 个:1234、dfd、ddss、35345 我该如何解决? (双引号内的内容不要拆分)

使用 Apache Commons 的 CSVParser。

它可以处理包含分隔符(以及更多)的字段:

https://commons.apache.org/proper/commons-csv/

CSVFormat.withDelimiter(',').withQuote('"')

CSVFormat.EXCEL 将是以下内容的快捷方式:

 CSVFormat
 .withDelimiter(',')
 .withQuote('"')
 .withRecordSeparator("\r\n")
 .withIgnoreEmptyLines(false)
 .withAllowMissingColumnNames(true)