目前我正在開發一個對用戶輸入做出響應的基本AI。如何製作textview.Contain搜索詞?
我有這行代碼:
if (value.contains("hi")){ test.setText("Hello."); speakOut();} }
,但此行是很容易與不是「喜」,像這樣的,其中還包含「喜」字引發的。
我可以使用什麼代碼來搜索確切的單詞而不是某些字符?
目前我正在開發一個對用戶輸入做出響應的基本AI。如何製作textview.Contain搜索詞?
我有這行代碼:
if (value.contains("hi")){ test.setText("Hello."); speakOut();} }
,但此行是很容易與不是「喜」,像這樣的,其中還包含「喜」字引發的。
我可以使用什麼代碼來搜索確切的單詞而不是某些字符?
然後使用equals
方法:
"hi".equals(value)
如果你有一個句字喜,你可以只把它分解:
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」,這將無法正常工作。但是,現在你有了這個想法,你將能夠找到一個很好的正則表達式,只會捕獲單詞。
等於不起作用,因爲用戶也可能鍵入「嗨,我的名字是blablabla」和等於不會回答這個。 –
然後做'value.startsWith(「hi」);'。 – Voicu
@Voicu如果你在句子中有「hibernate」這個詞?它會失敗。 –
爲什麼不使用'equals()'? – nhaarman