任务:读取XML文件以创建模板;基于密钥中某些字符串的一部分从HashMap中检索密钥?
我正在阅读这个XML文件,如下所述,并将其放入HashMap中。得到一个键值对, 其中Key是元素属性“name”下的值,Value是元素值。 如:关键:map.abc.color.PRIMARY和值:#FFFFFF 如:关键:map.abc.node.TEXT1和值:数值
<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的关键中的最后一个句号之后大写字母(或者可能是任何其他选项)结束
你必须遍历整组键,并检查(用正则表达式或简单地拆分字符串)哪些最后一部分大写。 – 2014-10-03 01:46:19
您正在使用错误的数据结构作业。数据库可以很容易地做到这一点。否则你需要一张辅助地图。 – EJP 2014-10-03 01:47:13