通过分隔符和其他特定字符串拆分字符串

时间:2012-08-11 01:22:33

标签: java string split

我知道如何用分隔符分割字符串,但我不知道它是如何用字符串完成的。我的意思是我有一个字符串,如

"(a AND b) OR c"

我想将它拆分,以便忽略括号和特殊字,如AND和OR。它应该返回一个{a, b, c}

的字符串数组

相同的字符串也可以采用"(a & b) || c"

等格式

我想将a,b,c放入字符串数组中并查找其ID并将其ID放入初始字符串而不是它们。

1 个答案:

答案 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”,以及一个或多个字符“!”,“&”,“|”,“(”或“)”。它用空格替换每一个出现,然后在空格上分割字符串(确保修剪前后,这样我们就不会在数组中得到它们。)

如果您对此有任何疑问,请与我们联系。希望它有所帮助。