我有一个像这样的字符串abc & "def&ghi" & jkl & "mno&pqr"
,想要做一个拆分&
,但我不想在双引号内拆分单词。
输出应该是abc, "def&ghi", jkl, "mno&pqr"
.
我尝试split("&")
对那个字符串做 a ,但这也将单词用双引号分开。
这样做的最佳方法是什么?
我有一个像这样的字符串abc & "def&ghi" & jkl & "mno&pqr"
,想要做一个拆分&
,但我不想在双引号内拆分单词。
输出应该是abc, "def&ghi", jkl, "mno&pqr"
.
我尝试split("&")
对那个字符串做 a ,但这也将单词用双引号分开。
这样做的最佳方法是什么?
看起来您应该使用csv 解析器之类的东西,因为它们被完全编程为处理" "
转义问题。
如果这是家庭作业并且不允许您使用生产工具,那么您应该按照您尝试过什么中的建议进行操作?
如果您在上面提到的 & 引号之间有空格
abc & "def&ghi" & jkl & "mno&pqr"
那么你也可以使用它.split(" & ");
来修剪空白。
我同意 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"]