【问题标题】:Identify unknown word (Word not inside of HashMap Dictionary)识别未知单词(不在 HashMap 字典中的单词)
【发布时间】:2014-03-06 16:28:06
【问题描述】:

有没有办法识别用户输入的单词是否不在您的 hashmap 字典中?像这样的:

Map<String, String> map = new HashMap<String, String>();
    map.put("dog", "type of animal");

如果用户要询问“猫”的定义,有没有办法确定该词没有定义?而且,如果是这样,我如何将其设置为用户可以添加此定义的位置?喜欢:

“猫的定义。”
- 定义不存在。添加定义:
“动物的种类。”

然后,当您再次要求定义时,它会给出该定义。我会自己查一下,但搜索词太具体了,找不到任何有用的东西。

【问题讨论】:

  • map.keySet().contains("cat") 如果有/没有条目,则返回真/假
  • map.containsKey(input)

标签: java dictionary hashmap


【解决方案1】:

如果您的地图中不存在该键,它将返回null

String definition = null;
if ((definition = map.get(input)) != null){
  return definition;
}else{
  //do your stuff. add to your map
}

【讨论】:

    【解决方案2】:

    你应该使用HashMap&lt;String, String&gt; map...

    你可以使用map.containsKey(String)

    【讨论】:

      【解决方案3】:

      如果您花 2 分钟在谷歌上搜索,您会发现 containsKey 是专为 tyhat 设计的。 如果密钥不存在,则返回 false。

      你也可以检查get方法是否返回null;

      检查javadoc!

      【讨论】:

        【解决方案4】:

        更好的方法:

        if (map.containsKey(input)){
          return map.get(input); //this is your definition
        }else{
          //do your stuff.
        }
        

        这样您就可以避免代码中的空值!

        【讨论】:

        • 我会将定义设置为什么?
        • 我认为getKey() 将是我用来获取定义的方法,但我的所有定义都仅使用map.put(); 列出。我可以将它抓取的键设置为用户输入吗?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-12-09
        • 2014-01-03
        • 2014-02-05
        • 2019-03-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多