[英]String value from properties file
我有一个属性(不能更改此文件),它看起来像:
aaa.bbb.ccc.first=my first value
aaa.bbb.ccc.second=my second value
aaa.bbb.ccc.third=my third value
如果我在Java类中需要任何值,可以使用i18n.getText("aaa.bbb.ccc.first")
但它仅适用于单个值。
问题是因为我不知道:
值的名称
-aaa.bbb.ccc中有多少个值?
如何获得值列表aaa.bbb.ccc〜?
您可以使用MapFilter 。 使用MapFilter(Properties p, String prefix)
构造函数。
public void test() {
Properties props = new Properties();
props.put("aaa.bbb.ccc.first", "my first value");
props.put("aaa.bbb.ccc.second", "my second value");
props.put("aaa.bbb.ccc.third", "my third value");
props.put("Other.props", "others");
MapFilter<String> filtered = new MapFilter(props, "aaa.bbb.ccc.");
for (Map.Entry<String, String> e : filtered.entrySet()) {
System.out.println("Key: " + e.getKey() + " Value: " + e.getValue());
}
System.out.println(filtered);
}
哈希图并不适合您要进行的查找: 尝试和基数树 。 Apache Commons Collections中有Patricia trie数据结构(即二进制基数树)的实现:只需从Map<String, Whatever>
(您有一个不错的构造函数)并使用prefixMap("aaa.bbb.ccc")
您可以获得键具有该前缀的所有条目的子图。
属性具有方法propertyNames()。 您可以使用它来获取所有密钥,然后从那里进行任何您想要的操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.