如何在java中严格查找字符串的子串?

SRK*_*SRK 0 java string substring

我想在JAVA中找到特定的字符串,我正在使用CONTAINS函数.

但是CONTAINS的问题在于,即使有一个超级字符串可用于该字符串,它也是真的.

例如,说

String i = "anand > 5 or id < 6" 
Run Code Online (Sandbox Code Playgroud)

我想检查字符串是否包含AND或OR.但是i.contains("and")因为anand,这里会给出真实的.

如何解决这个问题?

库中有可用的功能吗?

Joo*_*gen 5

if (i.matches("(?s).*\\b(and|or)\\b.*")) System.println("AND or OR found");
Run Code Online (Sandbox Code Playgroud)

(?s)让.也匹配换行符 \\b是一个单词边界


回答评论"嘿,现在我想......"

String[] words = ...;
StringBuilder expr = new StringBuilder();
for (String word : words) {
    if (expr.length() != 0)
        expr.append("|"):
    expr.append(word);
}
i = i.replaceAll("\\b(" + expr + ")\\b", "bla");
Run Code Online (Sandbox Code Playgroud)