我有一个名为
的属性文件window.1.height=100
window.1.width=80
window.2.height=50
window.2.width=30
window.3.height=150
window.3.width=100
我正在使用PropertiesConfiguration
类并阅读属性。
我怎么知道属性中的窗口数。有模式搜索
答案 0 :(得分:1)
我通常使用像
这样的东西int i = 0;
String val;
for(;;) {
val = props.get("foo" + i);
if (null == val) {
break;
}
//process val
}
这会产生计数器值必须连续的约束。
答案 1 :(得分:1)
如果您对属性文件本身有任何控制权,可以执行以下操作。如果你被锁定在那种格式中,我认为你无能为力。
但是,如果你没有锁定这种格式,这里有几个解决方案:
XML配置
从属性文件更改为XML文件格式。像这样:
<windows>
<window>
<width>80</width>
<height>100</height>
</window>
<window>
<width>30</width>
<height>50</height>
</window>
<window>
<width>100</width>
<height>150</height>
</window>
</windows>
然后使用XMLConfiguration代替PropertiesConfiguration。然后你可以打电话给
config.getList("windows").size()
获取窗口的数量。
属性配置
你的另一个选项,仍然涉及一个属性文件,有点做作。您的属性文件将更改为如下所示:
window.height=100
window.width=80
window.height=50
window.width=30
window.height=150
window.width=100
然后获取您要调用的窗口数
config.getList("window.height").size();
但是,使用此方法,您必须更改检索值的方式。例如,为了获得第二个窗口的宽度和高度,您可以使用:
config.getInteger("window.width(1)");
config.getInteger("window.height(1)");
使用parens,您可以使用从零开始的指标访问列表中的单个元素。这有点难以理解,但它会起作用。
答案 2 :(得分:0)
api已经在机上了。见Configuration#subset