Java中句子中的短语的子串

时间:2013-04-29 09:50:04

标签: java substring

我想检查句子中是否出现了一堆单词。实际上,我需要短语的子字符串功能。 我还需要检查多个单词之间的子字符串,而不是Java子字符串,并确保匹配仅包含句子中的连续单词。 不用说,如果短语本身是一个单词,那么一个单词匹配应该起作用。如果短语不止一个单词,那么子字符串应该在句子中进行完全匹配。

例如,给出两个句子“这本书在另一个包里”,“换句话说,我无法得出结论”,我需要检查它们中是否有任何一个匹配“换句话说” 。

4 个答案:

答案 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} } / containsAnycontainsOnly等。)