我知道如何用分隔符分割字符串,但我不知道它是如何用字符串完成的。我的意思是我有一个字符串,如
"(a AND b) OR c"
我想将它拆分,以便忽略括号和特殊字,如AND和OR。它应该返回一个{a, b, c}
相同的字符串也可以采用"(a & b) || c"
我想将a,b,c放入字符串数组中并查找其ID并将其ID放入初始字符串而不是它们。
答案 0 :(得分:1)
这是一个快速而肮脏的解决方案:
String str = "(a AND b) OR c"; // Any string you want
String delims = "AND|OR|NOT|[!&|()]+"; // Regular expression syntax
String newstr = str.replaceAll(delims, " ");
String[] tokens = newstr.trim().split("[ ]+"); // RE syntax again
// tokens == ["a", "b", "c"]
请注意,delims是一个正则表达式,如果你有更多的分隔符,你可以添加它。这个将取代“AND”,“OR”,“NOT”,以及一个或多个字符“!”,“&”,“|”,“(”或“)”。它用空格替换每一个出现,然后在空格上分割字符串(确保修剪前后,这样我们就不会在数组中得到它们。)
如果您对此有任何疑问,请与我们联系。希望它有所帮助。