目前我正在开发一个响应用户输入的基本人工智能。
我有这行代码:
if (value.contains("hi")){
test.setText("Hello.");
speakOut();}
}
但是这条线很容易被非“hi”的词触发,比如this,它也包含“hi”。
我可以使用什么代码来搜索确切的单词而不是某些字符?
目前我正在开发一个响应用户输入的基本人工智能。
我有这行代码:
if (value.contains("hi")){
test.setText("Hello.");
speakOut();}
}
但是这条线很容易被非“hi”的词触发,比如this,它也包含“hi”。
我可以使用什么代码来搜索确切的单词而不是某些字符?
然后使用equals
方法:
"hi".equals(value)
如果你有一个带有 hi 这个词的句子,你可以把它拆分:
String s = "Hi I'm this";
String [] words = s.split("\\s+"); //split by whitespaces
loop: for(String word : words){
if("hi".equals(word.toLowerCase())){
System.out.println("hello");
break loop;
}
}
就像评论所说的那样,你可能有一个像“嗨,blablabla”这样的句子,这不起作用。但是现在您有了这个想法,您将能够找到一个只能捕捉单词的好正则表达式。