任务:读取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/