java - 如何根据 Java 中的模式匹配在 map 中找到键?

标签 java regex

我想在具有模式匹配的映射中查找键。

Ex:-   
    Map<String, String> map = new HashMap<String, String>();
    map.put("address1", "test test test");
    map.put("address2", "aaaaaaaaaaa");
    map.put("fullname", "bla bla");

从上面的 map 中,我想获取前缀为“地址”的键的值。因此在这个例子中输出应该是前两个结果(“address1”和“address2”)。

我怎样才能动态地实现这一目标?

最佳答案

您可以获取 map 的 keySet,然后过滤以仅获取以“address”开头的键,并将有效键添加到新的 Set 中。

在 Java 8 中,它不那么冗长了:

Set<String> set = map.keySet()
                     .stream()
                     .filter(s -> s.startsWith("address"))
                     .collect(Collectors.toSet());

关于java - 如何根据 Java 中的模式匹配在 map 中找到键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29523711/

相关文章:

java - 如何在netbeans中进行RMI

regex - 设置 perl 正则表达式搜索从长字符串中的给定位置开始

javascript - 如何为这些句子创建正则表达式?

java - 在正则表达式中重用子模式

javascript - 在javascript中用正则表达式匹配一个字符串

javascript - 尝试解析由 | 分隔的字符串我想忽略 "| | | | "但它不起作用

java - 即使变量已经在方法中,也可能未初始化

java - Hibernate Enver 不审核软删除中使用的字段?

java - 为什么java说我还没有初始化变量?

java - 仅在必要时绘制后如何缩放 Image/Graphics2d