字符串转listmap(字符串转List)

字符串转listmap(字符串转List)1 package test 2 3 import java util ArrayList 4 import java util HashMap 5 import java util List 6 import java util Map 7 8 public class CopyOfString 9 10 11 定义分割常量

大家好,我是讯享网,很高兴认识大家。



 1 package test;  2  3 import java.util.ArrayList;  4 import java.util.HashMap;  5 import java.util.List;  6 import java.util.Map;  7  8 public class CopyOfStringUtil {  9  10 /  11  * 定义分割常量  12  * #用于list中每个元素间的分割  13  * |用于map中每一个kv对间的分割  14  * =用于map中key与value间的分割  15 */  16 private static final String SEP1 = “,”;  17 private static final String SEP2 = “|”;  18 private static final String SEP3 = “=”;  19  20 /  21  * List转换String  22  *  23  * @param list  24  * :需要转换的List  25  * @return String转换后的字符串  26 */  27 public static String ListToString(List<?> list) {  28 StringBuffer sb = new StringBuffer();  29 if (list != null && list.size() > 0) {  30 for (int i = 0; i < list.size(); i++) {  31 if (list.get(i) == null || list.get(i) == “”) {  32 continue;  33  }  34 // 如果值是list类型则调用自己  35 if (list.get(i) instanceof List) {  36 sb.append(ListToString((List<?>) list.get(i)));  37  sb.append(SEP1);  38 } else if (list.get(i) instanceof Map) {  39 sb.append(MapToString((Map<?, ?>) list.get(i)));  40  sb.append(SEP1);  41 } else {  42  sb.append(list.get(i));  43  sb.append(SEP1);  44  }  45  }  46  }  47 return “L” + sb.toString();  48  }  49  50 /  51  * Map转换String  52  *  53  * @param map  54  * :需要转换的Map  55  * @return String转换后的字符串  56 */  57 public static String MapToString(Map<?, ?> map) {  58 StringBuffer sb = new StringBuffer();  59 // 遍历map  60 for (Object obj : map.keySet()) {  61 if (obj == null) {  62 continue;  63  }  64 Object key = obj;  65 Object value = map.get(key);  66 if (value instanceof List<?>) {  67 sb.append(key.toString() + SEP1 + ListToString((List<?>) value));  68  sb.append(SEP2);  69 } else if (value instanceof Map<?, ?>) {  70 sb.append(key.toString() + SEP1 + MapToString((Map<?, ?>) value));  71  sb.append(SEP2);  72 } else {  73 sb.append(key.toString() + SEP3 + value.toString());  74  sb.append(SEP2);  75  }  76  }  77 return “M” + sb.toString();  78  }  79  80 /  81  * String转换Map  82  *  83  * @param mapText  84  * :需要转换的字符串  85  * @return Map<?,?>  86 */  87 public static Map<String, Object> StringToMap(String mapText) {  88  89 if (mapText == null || mapText.equals(“”)) {  90 return null;  91  }  92 mapText = mapText.substring(1);  93  94 Map<String, Object> map = new HashMap<String, Object>();  95 String[] text = mapText.split(“" + SEP2); // 转换为数组  96 for (String str : text) {  97 String[] keyText = str.split(SEP3); // 转换key与value的数组  98 if (keyText.length < 1) {  99 continue; 100  } 101 String key = keyText[0]; // key 102 String value = keyText[1]; // value 103 if (value.charAt(0) == ‘M’) { 104 Map<?, ?> map1 = StringToMap(value); 105  map.put(key, map1); 106 } else if (value.charAt(0) == ‘L’) { 107 List<?> list = StringToList(value); 108  map.put(key, list); 109 } else { 110  map.put(key, value); 111  } 112  } 113 return map; 114  } 115 116 / 117  * String转换List 118  * 119  * @param listText 120  * :需要转换的文本 121  * @return List<?> 122 */ 123 public static List<Object> StringToList(String listText) { 124 if (listText == null || listText.equals(”“)) { 125 return null; 126  } 127 listText = listText.substring(1); 128 129 List<Object> list = new ArrayList<Object>(); 130 String[] text = listText.split(”" + SEP1); 131 String listStr = “”; 132 boolean flag = false; 133 for (String str : text) { 134 if (!str.equals(“”)) { 135 if (str.charAt(0) == ‘M’) { 136 Map<?, ?> map = StringToMap(str); 137  list.add(map); 138 } else if (str.charAt(0) == ‘L’ || flag) { 139 flag = true; 140 listStr += str + SEP1; 141 } else { 142  list.add(str); 143  } 144  } 145 if (str.equals(“”)) { 146 flag = false; 147 List<?> lists = StringToList(listStr); 148  list.add(lists); 149  } 150  } 151 return list; 152  } 153 154 }

讯享网


讯享网

小讯
上一篇 2025-06-08 17:04
下一篇 2025-05-13 20:25

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/140405.html