当前位置:网站首页 > 编程语言 > 正文

字符串转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 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 }
到此这篇字符串转listmap(字符串转List)的文章就介绍到这了,更多相关内容请继续浏览下面的相关 推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • xp虚拟机可以玩老游戏吗知乎(xp虚拟机可以玩老游戏吗知乎文章)2026-01-19 14:54:04
  • toby翻译成中文(toy翻译成汉语)2026-01-19 14:54:04
  • 485的协议(485协议有什么用)2026-01-19 14:54:04
  • exe反编译器(exe反编译工具)2026-01-19 14:54:04
  • ip和域名有什么区别(ip和域名的区别与联系)2026-01-19 14:54:04
  • ovns电子烟一次性(vaptio电子烟一次性)2026-01-19 14:54:04
  • 卸载程序快捷命令(卸载程序快捷命令是哪个)2026-01-19 14:54:04
  • win7虚拟机配置要求(win7虚拟机配置要求高吗)2026-01-19 14:54:04
  • win10虚拟器下载(win10自带虚拟机安装详细步骤)2026-01-19 14:54:04
  • Podoplanin翻译(ponko翻译)2026-01-19 14:54:04
  • 全屏图片