java中的属性-我们可以使用单值逗号分隔键吗?
我希望在java应用程序的属性文件中为单个值提供多个键(>1)。一种简单的方法是在属性文件的单独行中定义每个键,并将相同的值定义给所有这些键。这种方法提高了属性文件的可维护性。另一种方法(我认为这可能是一种聪明的方法)是用单行中的值定义逗号分隔的键。e、 gjava中的属性-我们可以使用单值逗号分隔键吗?,java,properties,Java,Properties,我希望在java应用程序的属性文件中为单个值提供多个键(>1)。一种简单的方法是在属性文件的单独行中定义每个键,并将相同的值定义给所有这些键。这种方法提高了属性文件的可维护性。另一种方法(我认为这可能是一种聪明的方法)是用单行中的值定义逗号分隔的键。e、 g key1,key2,key3=value Java.util.properties不支持这种开箱即用的方式。以前有人做过类似的事情吗?我用谷歌搜索了一下,但什么也没找到 --manish由于java.util.Properties扩展
key1,key2,key3=value
Java.util.properties不支持这种开箱即用的方式。以前有人做过类似的事情吗?我用谷歌搜索了一下,但什么也没找到
--manish由于
java.util.Properties
扩展了java.util.Hashtable
,您可以使用Properties
加载数据,然后对数据进行后期处理
使用
java.util.Properties
加载数据而不是滚动自己的数据的优点是,属性的语法实际上已经支持许多有用的特性,您可能最终不得不重新实现这些特性(例如跨多行拆分值、转义等).属性文件的优点之一是它们很简单。不需要学习复杂的语法,而且容易上手
想知道属性foo
的值是多少吗?快速扫描左栏,直到看到“foo”
就个人而言,如果我看到这样的属性文件,我会感到困惑
如果这是您真正想要的,那么它应该易于实现。快速第一刺可能如下所示:
- 打开文件
- 对于每一行:
whitespacetrim()
- 如果该行为空或以#开头,请继续
- 在“
”(限制设置为2)上拆分,留下键和值=
- 拆分键在“
”上,
- 对于每个键,
将其删除,并将其与trim()
'd值一起添加到地图中trim()
就是这样。我不知道有什么现有的解决方案,但它的实现应该非常简单:
String key = "key1,key2,key3", val = "value";
Map<String, String> map = new HashMap<String, String>();
for(String k : key.split(",")) map.put(k, val);
System.out.println(map);
String key=“key1,key2,key3”,val=“value”;
Map Map=newhashmap();
对于(字符串k:key.split(“,”)map.put(k,val);
系统输出打印项次(map);
+1表示“保持简单”建议。但您推荐的实现并不是那么简单(您可以使用属性并对其进行后处理),请不要忘记属性文件遵循以下原则:Key=Value或Value=Key或两者兼而有之(即Key=Key或Value=Value)。“=”符号将两个字段分开。Apache Struts在引入LookupDispatchAction时广泛使用了此功能。刚刚考虑过添加我的2cent-worth:-)@guester:也许Struts有一些特殊的属性子类,但是常规的Java属性就是key=value。