如何将字符串转换为哈希映射?

2022-09-01 07:04:14

我有一个Java属性文件,有一个as.因此,我在加载属性文件后使用该方法检索该方法,如下所示:KEYORDERVALUEKEYgetProperty()

String s = prop.getProperty("ORDER");

然后

s ="SALES:0,SALE_PRODUCTS:1,EXPENSES:2,EXPENSES_ITEMS:3";

我需要从上面的字符串创建一个哈希映射。 应该是 HashMap 的,并且应该是 s 的 s。SALES,SALE_PRODUCTS,EXPENSES,EXPENSES_ITEMSKEY0,1,2,3,VALUEKEY

如果是硬绳,它看起来如下:

Map<String, Integer> myMap  = new HashMap<String, Integer>();
myMap.put("SALES", 0);
myMap.put("SALE_PRODUCTS", 1);
myMap.put("EXPENSES", 2);
myMap.put("EXPENSES_ITEMS", 3);

答案 1

你可以用Guava的Splitter.MapSplitter做到这一点:

Map<String, String> properties = Splitter.on(",")
    .withKeyValueSeparator(":")
    .split(inputString);

答案 2

String.split() 方法与分隔符结合使用,以获取对的列表。迭代这些对,然后再次使用分隔符以获取每对的键和值。,split():

Map<String, Integer> myMap = new HashMap<String, Integer>();
String s = "SALES:0,SALE_PRODUCTS:1,EXPENSES:2,EXPENSES_ITEMS:3";
String[] pairs = s.split(",");
for (int i=0;i<pairs.length;i++) {
    String pair = pairs[i];
    String[] keyValue = pair.split(":");
    myMap.put(keyValue[0], Integer.valueOf(keyValue[1]));
}