我有一个像abc & "def&ghi" & jkl & "mno&pqr"
这样的字符串,想要进行拆分&
,但我不想在双引号内拆分单词。
输出应为abc, "def&ghi", jkl, "mno&pqr"
。
我尝试对该字符串执行split("&")
,但这也是在双引号内分割单词。
这是最好的方法吗?
答案 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"]