String List Map 之间的转换

本文介绍了如何在Java中将String转换为List和Map,以及List和Map转换回String。提供了两种不同的方法,适用于不同场景,特别强调了在处理复杂字符串时的注意事项,如避免在value值中包含逗号。
摘要由CSDN通过智能技术生成

1.String 转 List

//String字符串转集合(简单高效)
//根据字符串中的某个字符进行转换
String str = "a, b, c";
List<String> list = Arrays.asList(str);

//如果字符串List集合比较复杂不便于字符进行拆分转换
public List<String> strChangeToList(String strList) {
    JSONArray json = JSONArray.fromObject(strList);
    List<String> list = new ArrayList<>();
    for (Object str : list) {
        list.add(str.toString());
    }
    return list;
}

2.String 转 Map

引用:import com.alibaba.fastjson.JSONObject;

//第一种方法
String strMap = "{\"key1\":\"val1\",\"key2\":\"val2\"}";
Map<String, String> Map= JSONObject.parseObject(strMap, Map.class);

//第二种方法

 public static Map<String, Object> getValue(String param) {
            Map<String, Object> map = new HashMap<>();
            String str = "";
            String key = "";
            Object value = "";
            char[] charList = param.toCharArray();
            boolean valueBegin = false;
            for (int i = 0; i < charList.length; i++) {
                char c = charList[i];
                if (c == '{') {
                    if (valueBegin == true) {
                        value = getValue(param.substring(i, param.length()));
                        i = param.indexOf('}', i) + 1;
                        map.put(key, value);
                    }
                } else if (c == '=') {
                    valueBegin = true;
                    key = str;
                    str = "";
                } else if (c == ',') {
                    valueBegin = false;
                    value = str;
                    str = "";
                    map.put(key, value);
                } else if (c == '}') {
                    if (str != "") {
                        value = str;
                    }
                    map.put(key, value);
                    return map;
                } else if (c != ' ') {
                    str += c;
                }
            }
            return map;
        }

然后写了个方法 简单测试一下
public static void main(String[] args) {
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("aaa", 11);
        map.put("bbb", 22);
        map.put("ccc", 33);
        map.put("ddd", 44);
        
        String string = map.toString();
        
        System.out.println("map转String"+string);
        
//        Map<String, Object> stringToMap = getStringToMap(string);
        Map<String, Object> stringToMap = getValue(string);
        for(Object a : stringToMap.keySet()) {
            System.out.println(stringToMap.get(a).toString());
        }
    }
需要注意的是 value 值中 不能带 逗号(,)

3.List或Map转String

//这个就很简单了 直接 toStirng就可以了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值