mapString转换成Map类型

问题描述

需要实现mapString转换成Map类型,对过程进行一下记录

    /**
     * 将Map字符串转换为Map
     *
     * @param str
     * @return
     */
    private static Map<String, String> mapStringToMap(String str) {
        if (StringUtils.isEmpty(str)) {
            return null;
        }
        str = str.substring(1, str.length() - 1);
        String[] strs = str.split(",");
        Map<String, String> map = new HashMap<String, String>();
        for (String string : strs) {
            String[] strSplit = string.split("=");
            if (strSplit.length <= 1) {
                return map;
            }
            String key = string.split("=")[0];
            String value = string.split("=")[1];
            // 去除空格
            String key1 = key.trim();
            String value1 = value.trim();
            map.put(key1, value1);
        }
        return map;
    }

    //测试方法
    public static void main(String[] args) {
        String mapStr = "{key1=value1, key2=value2, key3=value3}";
        Map<String, String> newMap = mapStringToMap(mapStr);
    }

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Java中,将一个字符串转换为Map可以使用以下步骤: 1. 声明一个空的Map对象,例如HashMap。 2. 使用split()函数将字符串按照指定的分隔符分割成键值对数组。 3. 循环遍历键值对数组,将每一对键值对放入Map中。其中,键值对的分隔符可以使用“=”或“:”等常用符号。 以下是一个示例代码: ``` String str = "key1=value1,key2=value2,key3=value3"; Map<String, String> map = new HashMap<>(); String[] pairs = str.split(","); for (String pair : pairs) { String[] keyValue = pair.split("="); map.put(keyValue[0], keyValue[1]); } ``` 以上代码将字符串str转换为Map对象map,其中键值对的分隔符为“=”。若想更改分隔符,只需将split()函数的参数改为对应符号即可。 ### 回答2: 在Java中,可以通过使用split()方法将一个字符串拆分成字符串数组,然后将字符串数组转换为Map。split()方法可以使用指定的分隔符拆分字符串,并返回一个包含拆分后的子字符串的数组。 首先,我们需要定义一个字符串,其中包含键值对(key-value pairs),它们之间使用指定的分隔符进行分隔。例如,我们可以使用逗号作为分隔符,将字符串分成多个键值对。 然后,我们将使用String.split()方法将字符串拆分成字符串数组。在该方法中,我们需要将分隔符作为参数传递。 接下来,我们需要创建一个空的Map对象,在循环中,我们需要从数组中提取所有的键值对,将它们分别放入Map中。在循环中,我们需要将每个键值对以'='为分隔符分开,并使用Map.put()方法将其添加到Map中。 最后,我们可以使用Map.get()方法获取Map中的值,并在控制台中打印它。 下面是一个示例代码,可以将string转换成map: ``` public static Map<String, String> convertStringToMap(String str) { Map<String, String> map = new HashMap<>(); String[] keyValuePairs = str.split(","); for (String pair : keyValuePairs) { String[] entry = pair.split("="); map.put(entry[0].trim(), entry[1].trim()); } return map; } public static void main(String[] args) { String myString = "name=John, age=25, city=New York"; Map<String, String> myMap = convertStringToMap(myString); System.out.println(myMap.get("name")); // prints "John" System.out.println(myMap.get("age")); // prints "25" System.out.println(myMap.get("city")); // prints "New York" } ``` 在上面的代码中,我们将字符串“name=John, age=25, city=New York”转换成了一个Map对象,并在控制台中打印出了Map中的值。 ### 回答3: 在Python中,我们可以通过使用split()方法将一个字符串分割成一系列字符,并将它们存储到一个列表中。然后,我们可以通过将列表转换成字典,将字符串转换成字典。 例如,如果我们有一个字符串“key1=value1;key2=value2;key3=value3”,我们可以通过使用split()方法按照分号来分割它,并将得到的列表存储到一个变量中,如下所示: ``` string = 'key1=value1;key2=value2;key3=value3' lst = string.split(';') ``` 现在,lst变量将包含一个列表,其中包含三个字符串元素:“key1=value1”,“key2=value2”和“key3=value3”。 接下来,我们需要使用另一个循环来遍历列表,使用split()方法按照等号分割每个元素,并将结果存储到字典中。例如,我们可以使用下面的代码来完成这个转换过程: ``` string = 'key1=value1;key2=value2;key3=value3' lst = string.split(';') my_dict = {} for item in lst: key, value = item.split('=') my_dict[key] = value print(my_dict) ``` 这将在屏幕上打印出一个字典,其中包含三个键值对(key1:value1,key2:value2和key3:value3)。我们可以像使用任何其他字典一样,使用它们来执行所需的操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值