java中map與string數據類型的轉換
/** * Map和String的相互轉化 * */ public class Test05 { public static void main(String[] args) { Map<String,Object> map = new HashMap<>(3); map.put("name","小明"); map.put("sex","男"); map.put("age","16"); //Map轉String String str1 = getMapToString(map); System.out.println(str1); try { //String轉map Map<String, Object> map1 = getStringToMap(str1); System.out.println(map1); } catch (Exception e) { e.printStackTrace(); } } /** * * Map轉String * @param map * @return */ public static String getMapToString(Map<String,Object> map){ Set<String> keySet = map.keySet(); //將set集合轉換為數組 String[] keyArray = keySet.toArray(new String[keySet.size()]); //給數組排序(升序) Arrays.sort(keyArray); //因為String拼接效率會很低的,所以轉用StringBuilder StringBuilder sb = new StringBuilder(); for (int i = 0; i < keyArray.length; i++) { // 參數值為空,則不參與簽名 這個方法trim()是去空格 if ((String.valueOf(map.get(keyArray[i]))).trim().length() > 0) { sb.append(keyArray[i]).append(":").append(String.valueOf(map.get(keyArray[i])).trim()); } if(i != keyArray.length-1){ sb.append(","); } } return sb.toString(); } /** * * String轉map * @param str * @return */ public static Map<String,Object> getStringToMap(String str){ //根據逗號截取字符串數組 String[] str1 = str.split(","); //創建Map對象 Map<String,Object> map = new HashMap<>(); //循環加入map集合 for (int i = 0; i < str1.length; i++) { //根據":"截取字符串數組 String[] str2 = str1[i].split(":"); //str2[0]為KEY,str2[1]為值 //map.put(str2[0],str2[1]); if (str2.length == 2){ map.put(str2[0].trim(),str2[1]); }else{ map.put(str2[0].trim(),""); } } return map; } }