1 package com.skynet.rimp.common.utils.util; 2 3 import java.util.Arrays; 4 import java.util.HashMap; 5 import java.util.Map; 6 import java.util.Set; 7 8 /** 9 * 10 * map集合和String相互轉換 11 */ 12 public class MapStringUtil { 13 14 /** 15 * map轉換為string 16 * @param map 17 * @return 18 */ 19 public String getMapToString(Map<String,Object> map){ 20 Set<String> keySet = map.keySet(); 21 //將set集合轉換為數組 22 String[] keyArray = keySet.toArray(new String[keySet.size()]); 23 //給數組排序(升序) 24 Arrays.sort(keyArray); 25 //因為String拼接效率會很低的,所以轉用StringBuilder 26 StringBuilder sb = new StringBuilder(); 27 for (int i = 0; i < keyArray.length; i++) { 28 // 參數值為空,則不參與簽名 這個方法trim()是去空格 29 if ((String.valueOf(map.get(keyArray[i]))).trim().length() > 0) { 30 sb.append(keyArray[i]).append(":").append(String.valueOf(map.get(keyArray[i])).trim()); 31 } 32 if(i != keyArray.length-1){ 33 sb.append(","); 34 } 35 } 36 return sb.toString(); 37 } 38 39 40 /** 41 * string轉為map 42 * @param str 43 * @return 44 */ 45 public Map<String,Object> getStringToMap(String str) { 46 //根據逗號截取字符串數組 47 String[] str1 = str.split(","); 48 //創建Map對象 49 Map<String, Object> map = new HashMap<>(); 50 //循環加入map集合 51 for (int i = 0; i < str1.length; i++) { 52 //根據":"截取字符串數組 53 String[] str2 = str1[i].split(":"); 54 //str2[0]為KEY,str2[1]為值 55 map.put(str2[0], str2[1]); 56 } 57 return map; 58 } 59 60 }
可用於map集合與String 字符串相互轉換 制作成工具類