如果HashMap包含键(字符串的任何部分)

时间:2019-03-06 19:00:49

标签: java string if-statement hashmap

这个问题听起来有点怪异,但我可以解释一下: 我有一个HashMap,其中填充了字符串作为键和值。而且我有一个字符串。现在我想做这样的事情:

if(myhashmap.containskey(ANY PART OF MY STRING)

赞:

String str = "Java is cool!";
[HashMap that contains following : "Java";

我希望我可以检查字符串是否包含某些内容。 也许我可以使用for循环来做到这一点,但是没有像hashmap.entry这样的东西。 你会怎么做?

2 个答案:

答案 0 :(得分:0)

您可以遍历地图的键并检查它们是否在字符串中:

String str = "Java is cool!";
Map<String, ...> map = ...;

for (String key : map.keySet()) {
    if (str.contains(key)) {
        ...
    }
}

如果您还需要keyyou can use entrySet的关联值。

答案 1 :(得分:0)

您可以通过流和过滤来完成它,这很实用:)

Map<String, Integer> map = new HashMap<>();
map.put("Hello World", 1);
map.put("Challo World", 2);
map.put("Hallo World", 3);
map.put("Hello Universe", 4);
map.put("Hello Cosmos", 5);

List<Integer> values =
    map.keySet().stream()
       .filter(key -> key.contains("World"))
       .map(map::get)
       .collect(Collectors.toList());

您应该获得一个值为{1,2,3}的List<Integer>