任務:讀取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