Nar*_*mar 20 java collections hashmap
如何将字符串转换为哈希映射
String value = "{first_name = naresh, last_name = kumar, gender = male}"
Run Code Online (Sandbox Code Playgroud)
成
Map<Object, Object> = {
first_name = naresh,
last_name = kumar,
gender = male
}
Run Code Online (Sandbox Code Playgroud)
关键是String和价值观HashMap
注意:键可以是任何类似的东西 first_name
任何通用的方法将不胜感激.
kai*_*kai 43
这是一个解决方案.如果你想让它更通用,你可以使用我们的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
}
Run Code Online (Sandbox Code Playgroud)
例如,您可以切换
value = value.substring(1, value.length()-1);
Run Code Online (Sandbox Code Playgroud)
至
value = StringUtils.substringBetween(value, "{", "}");
Run Code Online (Sandbox Code Playgroud)
如果您正在使用StringUtils包含在apache.commons.lang包中.
String value = "{first_name = naresh,last_name = kumar,gender = male}"
Run Code Online (Sandbox Code Playgroud)
开始吧
{和}来自String>> FIRST_NAME =纳雷什,姓氏=库马尔,性别=男Stringfrom ,>> array of 3 elementarraywith 3元素array并拆分每个元素=Map<String,String>把每个部分分开的=.第一部分Key和第二部分Value (因为我非常自由地使用Gson,所以我分享了一种基于 Gson 的方法)
Gson gson = new Gson();
Map<Object,Object> attributes = gson.fromJson(gson.toJson(value),Map.class);
Run Code Online (Sandbox Code Playgroud)
它的作用是:
gson.toJson(value) 将您的对象序列化为其等效的 Json 表示形式。 gson.fromJson将 Json 字符串转换为指定的对象。(在这个例子中 - Map)这种方法有两个优点:
toJson方法的灵活性 。