我知道如何通过分隔符拆分字符串,但我不知道它是如何通过字符串完成的。我的意思是我有一个字符串,例如
"(a AND b) OR c"
我想拆分它,所以它忽略括号和特殊词,如 AND 和 OR。它应该返回我一个字符串数组{a, b, c}
相同的字符串也可以采用以下格式"(a & b) || c"
我想将 a、b、c 放入字符串数组并找到它们的 ID,并将它们的 ID 放入初始字符串而不是它们。
这是一个快速而肮脏的解决方案:
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"]
请注意,分隔符是一个正则表达式,如果您有更多分隔符,您可以添加到它。这个将替换“AND”、“OR”、“NOT”和一个或多个字符“!”、“&”、“|”、“(”或“)”。它用空格替换这些出现的每一个,然后在空格上分割字符串(确保修剪前后,这样我们就不会在我们的数组中得到它们)。
如果您对此有任何疑问,请告诉我。希望能帮助到你。