java - 根据键中某些字符串的一部分从 HashMap 中检索键?

标签 java

任务:读取XML文件以创建模板;

我正在读取下面提到的这个 XML 文件并将其放入 HashMap 中。获取键值对, 其中 Key 是元素属性“name”下的值,Value 是元素值。 例如:键:map.abc.color.PRIMARY 和值:#FFFFFF 例如:键:map.abc.node.TEXT1 和值:value1

<properties>
    <property name="map.abc.color.PRIMARY">#FFFFFF</property>
    <property name="map.abc.color.SECONDARY">#F0F0F0</property>
    <property name="map.abc.node.TEXT1">value1</property>
    <property name="map.abc.node.TEXT2">value2</property>
    <property name="map.abc.node.lowercase">value3</property>   
    <property name="map.abc.strFile">/path/to/file</property>

    <property name="map.pqr.color.PRIMARY">#000000</property>
    <property name="map.pqr.color.SECONDARY">#ABABAB</property>
    <property name="map.pqr.node.WORD1">value4</property>
    <property name="map.pqr.node.WORD2">value5</property>
    <property name="map.abc.node.lowercase">value6</property>
    <property name="map.pqr.strFile">/path/to/file</property>
</properties>

以下是要写入文件的模板(使用 StringBuffer)输出。

abc = {
    color: {PRIMARY_COLOR:"#FFFFFF",SECONDARY_COLOR:"#F0F0F0"}
    node:{TEXT1:"value1",TEXT2:"value2"}
};

pqr = {
    color: {PRIMARY_COLOR:"#FFFFFF",SECONDARY_COLOR:"#F0F0F0"}
    node:{WORD1:"value4",WORD2:"value5"}
};

Offnote:我正在使用以下模式,效果很好。

key.matches("map.abc.*.*\\p{Lu}$") or key.matches("map.*.*\\p{Lu}$")

因此,我希望找到一种方法来获取 HashMap 中键的最后一个句点之后以大写字母结尾的所有键(或者可能是任何其他选项)

最佳答案

您可以将 key 与以下正则表达式进行匹配,看看它是否返回 true:

key.matches(".*\\.[A-Z]+");

关于java - 根据键中某些字符串的一部分从 HashMap 中检索键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26172131/

相关文章:

java - 错误 :The import com. google.appengine.api.datastore 无法解析 JPA GAE GWT

java - Log4J模板模式转换

Java:JPanel边框旋转但背景不旋转

java - 无论我做什么,JLabel 都不显示

java - 以高性能方式处理稀疏数据

Java Swing/JFrame 监听器

java - 在添加之前检查 LinkedHashSet.contains(...) 是否值得?

java - 如何在 openGL 中制作光球?

java - 这种情况如何与 ArrayList 配合使用?

java - 如何使用 SAX 获取 xml 标记的正确开始/结束位置?