0

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

输出应该是abc, "def&ghi", jkl, "mno&pqr".

我尝试split("&")对那个字符串做 a ,但这也将单词用双引号分开。

这样做的最佳方法是什么?

4

3 回答 3

4

看起来您应该使用csv 解析器之类的东西,因为它们被完全编程为处理" "转义问题。

如果这是家庭作业并且不允许您使用生产工具,那么您应该按照您尝试过什么中的建议进行操作?

于 2013-03-06T02:28:27.513 回答
0

如果您在上面提到的 & 引号之间有空格

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

那么你也可以使用它.split(" & ");来修剪空白。

于 2013-03-06T02:32:28.220 回答
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"]
于 2013-03-06T04:54:16.287 回答