yep*_*yep 48 java arrays enums properties
我目前正在创建一个需要加载并转换为数组的.properties文件.但是有可能存在每个属性键的0-25.我尝试了一些实现,但我只是坚持干净利落.有人有主意吗?
foo.1.filename=foo.txt
foo.1.expire=200
foo.2.filename=foo2.txt
foo.2.expire=10
etc more foo's
bar.1.filename=bar.txt
bar.1.expire=100
Run Code Online (Sandbox Code Playgroud)
我将文件名/过期配对组装成一个数据对象,作为每个父属性元素的数组的一部分 foo[myobject]
属性文件的格式可以改变,我对想法持开放态度.
Abs*_*Abs 37
我可以建议使用分隔符并使用
String.split(delimiter)
示例属性文件:
MON = 0800#Something#Something1,Something2
prop.load(new FileInputStream("\\\\Myseccretnetwork\\Project\\props.properties"));
String[]values = prop.get("MON").toString().split("#");
Run Code Online (Sandbox Code Playgroud)
希望有所帮助
Big*_*c66 13
定义不是潜在值的分隔符或学习使用XML.
如果仍然坚持使用属性,请使用其中一种方法返回所有键的列表.您的密钥似乎有三个部分:组标识符(foo,bar)和索引(1,2),然后是元素名称(文件名,到期).获取所有键将它们分解为组件部分.为每种类型的标识符创建一个List,在处理列表时使用标识符来确定要添加到哪个List.按照你的说法创建配对元素,只需添加到列表中即可!如果索引顺序很重要,请将其作为字段添加到配对元素中,或者在处理之前对键进行排序.
小智 12
没有完全明白你的意图.检查Apache Commons配置库http://commons.apache.org/configuration/
对于一个键,你可以有多个值,如key = value1,value2,你可以把它读成数组 configuration.getAsStringArray("key")
使用YAML文件作为属性,这支持将属性作为数组。
关于 YAML 的快速浏览:
JSON 的超集,它可以做 JSON 可以做的一切 + 更多
小智 5
我有自定义加载。属性必须定义为:
key.0=value0
key.1=value1
...
Run Code Online (Sandbox Code Playgroud)
自定义加载:
/** Return array from properties file. Array must be defined as "key.0=value0", "key.1=value1", ... */
public List<String> getSystemStringProperties(String key) {
// result list
List<String> result = new LinkedList<>();
// defining variable for assignment in loop condition part
String value;
// next value loading defined in condition part
for(int i = 0; (value = YOUR_PROPERTY_OBJECT.getProperty(key + "." + i)) != null; i++) {
result.add(value);
}
// return
return result;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
99202 次 |
| 最近记录: |