从哈希表中的字符串中搜索连续的单词

时间:2018-01-29 15:41:55

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

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

一些关键值示例如下:

Good, Bad, Not Good, Very Good

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

我还有一堆字符串,我需要检查这个。所以,如果我有一个字符串表示&#34;这不好&#34;我想将这个主题作为负面评论归还。我现在正在做的是逐字逐句地浏览字符串,但它不会获取多个单词索引。

是否有一种有效的方法可以在字符串中搜索一次只有一个字的散列图中的单词?

1 个答案:

答案 0 :(得分:0)

以下代码只有打印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);
    }
}