【问题标题】:Search for consecutive words from a string in a hashtable从哈希表中的字符串中搜索连续单词
【发布时间】:2018-07-08 08:45:41
【问题描述】:

我有一个哈希映射,键值是一个单词,第二个值是该单词的主题。

一些关键值示例是:

Good, Bad, Not Good, Very Good

HashMap<String, String> subjectMap = new HashMap<>();

我还有一堆字符串需要检查。因此,如果我有一个字符串显示“这不好”,我想将该主题作为负面评论返回。我现在正在做的是逐字检查字符串,但它不会获取多个单词索引。

是否有一种有效的方法可以在字符串中搜索哈希图中的一个单词,而该单词不是一次只有一个单词?

【问题讨论】:

  • 迭代映射条目并检查字符串 contain()s 是否为键值

标签: java data-structures hashmap contains string-comparison


【解决方案1】:

以下代码只有打印 2 个结果的缺陷(

Good
Not Good

),因为字符串包含两者。在这种方法中,您必须将密钥更改为完全唯一,否则您无法确定

String s = "This is not good";
HashMap<String, String> subjectMap = new HashMap<>();
subjectMap.put("Good", "");
subjectMap.put("Bad", "");
subjectMap.put("Not Good", "");
subjectMap.put("Very Good", "");

for (String str : subjectMap.keySet()) {
    if (s.toLowerCase().contains(str.toLowerCase())) {
        System.out.println(str);
    }
}

【讨论】:

  • 通过尝试,我明白你现在的意思了。你会推荐什么方法?
  • 取决于输入的来源以及输入是否始终相同或是否可以不同
猜你喜欢
  • 2014-08-11
  • 2011-07-14
  • 1970-01-01
  • 1970-01-01
  • 2017-01-28
  • 2011-12-27
  • 2013-10-22
  • 1970-01-01
相关资源
最近更新 更多