如何将String转换为HashMap

String value = "{first_name = naresh, last_name = kumar, gender = male}"

进入

Map<Object, Object> = {
    first_name = naresh,
    last_name = kumar,
    gender = male
}

其中的键是first_namelast_namegender,值是nareshkumarmale

注意:键可以是city = hyderabad之类的任何东西。

我正在寻找一种通用方法。

最佳答案

这是一种解决方案。如果要使其更通用,可以使用StringUtils库。

String value = "{first_name = naresh,last_name = kumar,gender = male}";
value = value.substring(1, value.length()-1);           //remove curly brackets
String[] keyValuePairs = value.split(",");              //split the string to creat key-value pairs
Map<String,String> map = new HashMap<>();

for(String pair : keyValuePairs)                        //iterate over the pairs
{
    String[] entry = pair.split("=");                   //split the pairs to get key and value
    map.put(entry[0].trim(), entry[1].trim());          //add them to the hashmap and trim whitespaces
}
例如您可以切换
 value = value.substring(1, value.length()-1);
 value = StringUtils.substringBetween(value, "{", "}");
如果您使用的是StringUtils软件包中包含的apache.commons.lang

10-06 00:56