java - 按分隔符和其他特定字符串分割字符串

标签 java string split

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

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

如果您对此有任何疑问,请告诉我。希望对您有所帮助。

关于java - 按分隔符和其他特定字符串分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11911102/

相关文章:

java - 匹配具有双字母的单词

java - Hibernate 查询生成器抛出 MySQLSyntaxErrorException

javascript - 如何在javascript中使用空格和 "|"分割字符串

java - 将字符串设置为日历类型

java - Java错误: cannot resolve method split()

java - 如何跟踪应用程序启动

java - 在 POST 方法中将字符串发送到 Spring(Jackson) REST Controller

java - equalsIgnoreCase 与 Java 中的 regionMatches。哪个效率高?

java - Java中括号内的数字分割

c - 如何从 C 中的字符串中去除文件扩展名?