我想检查句子中是否出现了一堆单词。实际上,我需要短语的子字符串功能。 我还需要检查多个单词之间的子字符串,而不是Java子字符串,并确保匹配仅包含句子中的连续单词。 不用说,如果短语本身是一个单词,那么一个单词匹配应该起作用。如果短语不止一个单词,那么子字符串应该在句子中进行完全匹配。
例如,给出两个句子“这本书在另一个包里”,“换句话说,我无法得出结论”,我需要检查它们中是否有任何一个匹配“换句话说” 。
答案 0 :(得分:1)
您可以使用Contains()
查看以下示例:
http://www.easywayserver.com/blog/java-string-contains-example/
此外,如果您需要忽略大小写,则可以将两个字符串解析为小写str1.toLowerCase().contains(str2.toLowerCase())
答案 1 :(得分:1)
尝试使用String.contains
方法,请注意这是一个区分大小写的搜索。
String ex1 = "The book was in the other bag";
String ex2 = "In other words, I could not arrive at a conclusion";
String search = "in other words";
ex1.toUpperCase().contains(search.toUpperCase());
ex2.toUpperCase().contains(search.toUpperCase());
答案 2 :(得分:0)
您正在寻找正则表达式:
String str1 = "The book was in the other bag";
String str2 = "In other words, I could not arrive at a conclusion";
String phrase = "in other words";
Pattern pattern = Pattern.compile(phrase, Pattern.CASE_INSENSITIVE);
boolean str1containsPhrase = pattern.matcher(str1).find(); // false
boolean str2containsPhrase = pattern.matcher(str2).find(); // true
答案 3 :(得分:0)
考虑使用Class StringUtils,它提供了更灵活的检查子字符串,例如相对于其他字符串的子字符串提取(如substringBefore / substringAfter / substringBetween {{3} } / containsAny和containsOnly等。)