用Quotes(“)分割字符串无法正常工作

时间:2019-04-20 07:18:07

标签: java arrays string escaping

我有一段代码将一个字符串拆分为String数组。由于引号包含在字符串中,因此无法使用逗号进行拆分。

正则表达式是我的代码的一部分,因此我无法删除整个正则表达式,我能做的就是将其扩展

 String  lines = "70001223,fjdhsd,jahd\",37874,dfhjkd,jadhj";

         String columns [] = lines.split(",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)", -1);


         for(int i = 0; i < columns.length; i++){
             System.out.println(columns[i]);
         }

70001223,fjdhsd,**jahd"**
37874
dfhjkd
jadhj

这是实际结果,但是我想要的实际结果是

70001223,
fjdhsd,
**jahd"**
37874
dfhjkd
jadhj

查看引起quote(“)引起问题的区别。

1 个答案:

答案 0 :(得分:1)

不能完全理解输出,就像某些行的逗号和***确实显示在原始字符串中一样。

也许是这样吗?

公共类RegexQuestion {

public static void main(String[] args) {
    String  lines = "70001223,fjdhsd,***jahd***\",37874,dfhjkd,jadhj";
    String  newLine = lines.replace("\"", "");

    String[] columns = newLine.split(",");

    for (String column : columns) System.out.println(column);
}

}