我想读取一个输入字符串,检查它是否以属性文件的关键部分中存在的给定值列表结束,如下面给出的 sample.properties ,并将其替换为值:< / p>
(即:假设输入字符串以COM或C.OM或COM。或COM结尾,我想用COM替换它)
sample.properties
ABC=COM
BCD=COM
EFG=COM
HIJ=COM
KLM=CO
XYZ=CO
请注意,我在属性文件中有大约4000个条目。
我的计划是:
1)在加载应用程序期间在HashMap中加载键和值。
2)查看输入字符串是否以&#34;键&#34;中包含的任何字结尾。属性文件的一部分。这可以通过获取HashMap的keySet来完成。
是否可行,如果对于每个传入的输入值,我检查输入值是否以Hashmap的keySet中包含的任何值结束?
或者还有其他更好的方法吗?
答案 0 :(得分:0)
sample.properties
文件。String::replaceAll(String regex, String replacement)
将每一行放在String
中。
String
s in java are immutable。[.,]
将替换点.
和逗号,
。
HashMap<String, String>
答案 1 :(得分:0)
你的HashMap
对你没有任何好处。
解决此问题的最简单快捷方法是记住所有不同的密钥长度(可能少于15)。然后,对于每个长度,如果输入字符串至少是那么长,则从末尾获取该长度的子字符串,并使用Map.get()
中的HashMap
来获取该密钥的任何替换值。