【发布时间】:2014-04-30 04:08:15
【问题描述】:
我是编程新手,并且正在研究一个函数以在句子中出现单词时返回 true。我尝试了indexOf() 方法,但后来我也遇到了这种方法的某个问题:
假设我的句子是I am a, Java Programmer.
如果我们使用indexOf() 方法查找单词ram,那么它将返回true,因为ram 存在于Programmer 中,而正确的输出应该是false,因为ram 不存在以单词的形式呈现,但以模式的形式呈现。
我该如何解决这个问题?我现在使用的代码是:
boolean isPresent(String word, String sentence)
{
if(sentence.indexOf(word) >= 0)
return true;
else
return false;
}
注意: ram 这个词只是一个例子,说明了我目前的方法存在的问题之一。并不是我必须一直使用 ram。这个词可以是a 之类的任何东西,在上面的句子中后跟一个逗号。
更新:感谢大家提供他们的 cmets 和解决方案。我选择了一个作为接受的答案(如果允许,我会选择更多:-)),但很多都是有帮助的。
【问题讨论】:
-
您可以使用 string.split 方法,然后检查结果数组是否包含您的单词。
-
顺便说一句,您可以像这样简化该函数的定义:
return sentence.indexOf(word) >= 0;-sentence.indexOf(word) >= 0是true或false,因此根据情况,这意味着return true;或return false;. -
这个问题清晰而完整,但我可以在 Stackoverflow 和许多其他地方多次找到这个问题的答案。
-
@AbuSulaiman 在这种情况下,您应该投票关闭这个问题作为重复,而不是仅仅发表评论。
标签: java pattern-matching