分裂为字符串

时间:2013-03-06 02:26:13

标签: java

我有一个像abc & "def&ghi" & jkl & "mno&pqr"这样的字符串,想要进行拆分&,但我不想在双引号内拆分单词。

输出应为abc, "def&ghi", jkl, "mno&pqr"

我尝试对该字符串执行split("&"),但这也是在双引号内分割单词。

这是最好的方法吗?

3 个答案:

答案 0 :(得分:4)

看起来你应该使用像csv parser这样的东西,因为它们的编程正是为了处理" "逃逸的问题。

如果这是家庭作业并且您不允许使用生产工具,那么您应该遵循What have you tried?中的建议

答案 1 :(得分:0)

如果&之间有空白区域引用你上面提到的

abc & "def&ghi" & jkl & "mno&pqr"

然后您可以使用.split(" & ");来修剪空白区域。

答案 2 :(得分:0)

我同意CSV解析器是解决方案,但作为一个原则问题:

    String s = "abc & \"def&ghi\" & jkl & \"mno&pqr\"";
    String[] a = s.split("(?=.*[^\"] )&");
    System.out.println(Arrays.toString(a));

输出

[abc ,  "def, ghi" ,  jkl ,  "mno&pqr"]