繁体   English   中英

属性文件中的字符串值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM