2014-10-17 47 views
0

當前與我的程序,如果用戶輸入「貓」,那麼chatbot會吐出「告訴我更多關於你的寵物」。如預期。然而,如果字母貓是另一個詞的一部分,這也是如此。所以一個像catch這樣的詞會被捕獲,並且chatbot會返回「告訴我更多關於你的寵物的信息。」我還會怎樣去改進關鍵字檢測?檢測JAVA的整個單詞

if(statement.indexOf(「cat」)> = 0){ response =「告訴我更多關於你的寵物的信息。」;

+2

'if(statement.equals(「cat」))'? – assylias 2014-10-17 15:03:12

+0

caterina - >告訴我更多關於你的寵物的信息 – 2014-10-17 15:09:40

+0

聲明不能超過一個單詞嗎? – CoqPwner 2014-10-17 15:18:49

回答

3

一對夫婦的改善關鍵字檢測:

  • 創建列表/設置關鍵字來比較
  • 使用split(」「)功能,在您的字符串,只得到的話(它返回一個String [],你可以循環)
2

您可以使用正則表達式:

Pattern pattern = Pattern.compile("\\bcat\\b"); 
Matcher matcher = pattern.matcher("Hello the cat is cool"); 
boolean cat; 
if(matcher.find()) { 
    cat = true; 
} else { 
    cat = false; 
} 

在模式使用\\b,確保只有完整的單詞匹配。