这个问题听起来有点怪异,但我可以解释一下: 我有一个HashMap,其中填充了字符串作为键和值。而且我有一个字符串。现在我想做这样的事情:
if(myhashmap.containskey(ANY PART OF MY STRING)
赞:
String str = "Java is cool!";
[HashMap that contains following : "Java";
我希望我可以检查字符串是否包含某些内容。 也许我可以使用for循环来做到这一点,但是没有像hashmap.entry这样的东西。 你会怎么做?
答案 0 :(得分:0)
您可以遍历地图的键并检查它们是否在字符串中:
String str = "Java is cool!";
Map<String, ...> map = ...;
for (String key : map.keySet()) {
if (str.contains(key)) {
...
}
}
如果您还需要key
,you 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>
。