1

我想检查一个句子中是否出现了一堆单词。基本上,我需要一个短语的子字符串功能。除了 Java 子字符串,我还需要检查多个单词之间的子字符串,并确保匹配只包括句子中的连续单词。不用说,如果短语本身是一个词,那么一个词匹配应该可以工作。如果短语多于一个单词,则子字符串应该在句子中进行完全匹配。

例如,给定两个句子“The book was in the other bag”和“换句话说,我无法得出结论”,我需要检查它们中的任何一个是否与短语“in other words”匹配。

4

4 回答 4

1

您可以使用Contains()

检查这个例子:

http://www.easywayserver.com/blog/java-string-contains-example/

此外,如果您需要忽略大小写,您可以将两个字符串都解析为小写str1.toLowerCase().contains(str2.toLowerCase())

于 2013-04-29T09:53:45.690 回答
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());
于 2013-04-29T09:53:52.973 回答
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
于 2013-04-29T09:57:30.003 回答
0

考虑使用StringUtils 类,它为子字符串检查提供了更大的灵活性,例如相对于其他字符串的子字符串提取(例如substringBefore / substringAfter / substringBetween as containsAny / containsOnlycontainsIgnoreCase等)

于 2013-04-29T10:01:45.550 回答