我想知道一个字符串是否是一个精确的词,但是例如如果我这样做:
String s1="Welcome";
String s ="Welcomes to Tutorialspoint.com";
System.out.println(s.contains(s1));
它返回 true,但我希望你给我返回 false,因为在s
带有单词Welcomes
而不是单词的变量Welcome
中s1
。我该如何进行?
您可以使用
Arrays.asList(s.split("\\s+")).contains(s1)
您可以通过调整用于拆分的正则表达式来修改此解决方案以满足您的需求。例如,如果您想拆分任何不是单词字符(即标点符号等),您可以使用\W+
.
您可以拆分句子,然后将每个单词与 进行比较s1
。
String s1="Welcome";
String s ="Welcomes to Tutorialspoint.com";
String[] split = s.split(" ");
for (String s : split) {
if (s.equals(s1)) {
System.out.println(s);
break; //optional
}
}
你可以试试
s.matches(".*\\b" + s1 + "\\b.*")
使用"\\b"
来查找单词边界。
使用StringTokenizer将字符串标记为组成词。然后将每个单词与 s1 进行比较。
对于比使用简单的字符串解析和/或正则表达式更高级的东西,您可以看看Lucene 如何解析和分析文本。
我怀疑它超出了您的需要,并且它添加了一个依赖项来做一些在您的情况下非常简单的事情。