3

这感觉就像必须多次重新发明的东西,并且不应该有一个,而是应该有几个库。

我想解析包含多个“key=value”形式的“赋值”的文本行,用逗号分隔。问题在于,应该可以尽可能地指定值,以接近 Java 允许指定字符串或数值的方式。例如转义字符串、指定 Unicode 字符或将制表符指定为 \t。

有谁知道有方法的开源或 LGPL 库?

更新:我认为(尚未)看到如何轻松使用属性,因为我必须处理一个包含多个键=值对的字符串,用逗号分隔。这里的问题是除非解析器知道如何正确解析值(当然可以包含逗号),否则没有简单的方法可以在逗号处拆分字符串。本质上,我想要做的是将这样的字符串转换为:var1=1, var2="asdf",var3="x,y,z\n",var4="\""转换为哈希图,或者 Value 包装一些字符串、布尔值或数值。

4

4 回答 4

1

我认为 Java Properties API 可以用于此

http://docs.oracle.com/javase/6/docs/api/java/util/Properties.html

于 2013-03-15T20:13:37.150 回答
1

不需要图书馆。

    String[] strArray= "var1=1,var2=2,var3=test".split(",");
    Map<String, String> map = new HashMap<>();
    for (String pair : strArray) {
        String split[] = pair.split("=");
        map.put(split[0], split[1]);
    }

如果你真的想使用图书馆,你可以试试Guava

Iterable<String> split = Splitter.on(',').omitEmptyStrings().split("var1=1,var2=2,var3=test");
于 2016-06-12T12:51:30.907 回答
0

你说的是属性文件吗?您可以使用以下方法执行此类操作Properties

Properties properties = new Properties();
properties.load(new FileInputStream("/path/to/file.properties"));
于 2013-03-15T20:14:16.527 回答
0

你不能使用 java java.util.Properties 吗?

http://docs.oracle.com/javase/6/docs/api/java/util/Properties.html

Properties props = new Properties();
props.load(new FileInputStream("myfile.properties"));
于 2013-03-15T20:17:06.250 回答