【问题标题】:Detecting Whole Words for JAVA检测 JAVA 的全词
【发布时间】:2014-10-17 23:14:11
【问题描述】:

目前在我的程序中,如果用户输入“猫”,那么聊天机器人会吐出“告诉我更多关于你的宠物的信息”。正如预期的那样。但是,如果字母 cat 是另一个单词的一部分,这也是正确的。因此,像 catch 这样的词会被选为 catch,聊天机器人会返回“告诉我更多关于你的宠物的信息”。我还能如何完善关键字检测?

if (statement.indexOf("cat") >=0) { response = "告诉我更多关于你的宠物的信息。";

【问题讨论】:

  • if (statement.equals("cat")) ?
  • caterina -> 告诉我更多关于你的宠物的信息
  • 语句不能超过一个字吗?

标签: java


【解决方案1】:

改进关键字检测的几种方法:

  • 创建要比较的关键字列表/集
  • 在你的字符串上使用 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,确保只匹配完整的单词。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-15
      • 1970-01-01
      • 1970-01-01
      • 2020-07-29
      • 2021-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多