JAVA Map集合转String,String转Map集合(支付额外参数转换)

百科知识2025-04-273

JAVA Map集合转String,String转Map集合##

当前两个转换方法主要用作支付宝,微信支付额外参数转换

先看效果是不是诸君想要的map转string的值 id=1&name=哆啦A梦丶幻想

string转map的值 {name=哆啦A梦丶幻想, id=1}

贴代码:

//这里是用单元测试测试的两个方法
@Test
public void filet(){
    Map<String,String> objectMap = new HashMap<>(3);
    ("id","1");
    ("name","哆啦A梦丶幻想");
    //map转string
    String passBackParams = (objectMap);
    (passBackParams);
    try {
        //string转map
       Map map =  (passBackParams);
        (map);
    } catch (Exception e) {
        ();
    }
}

然后两个方法的主要代码:

//参数类型是Map<String,String> 因为支付只能用string的参数。如果诸君还需要修改的话,那也可以适当的做调整
/**
 *
 * map转str
 * @param map
 * @return
 */
public static String getMapToString(Map<String,String> map){
    Set<String> keySet = ();
    //将set集合转换为数组
    String[] keyArray = (new String[()]);
    //给数组排序(升序)
    (keyArray);
    //因为String拼接效率会很低的,所以转用StringBuilder。博主会在这篇博文发后不久,会更新一篇String与StringBuilder开发时的抉择的博文。
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < ; i++) {
        // 参数值为空,则不参与签名 这个方法trim()是去空格
        if ((keyArray[i]).trim().length() > 0) {
            (keyArray[i]).append("=").append((keyArray[i]).trim());
        }
        if(i != -1){
            ("&");
        }
    }
    return ();
}

/**
 * 2018年10月24日更新
 * String转map
 * @param str
 * @return
 */
public static Map<String,String> getStringToMap(String str){
    //感谢bojueyou指出的问题
    //判断str是否有值
    if(null == str || "".equals(str)){
        return null;
    }
    //根据&截取
    String[] strings = ("&");
    //设置HashMap长度
    int mapLength = ;
    //判断hashMap的长度是否是2的幂。
    if(( % 2) != 0){
        mapLength = mapLength+1;
    }

    Map<String,String> map = new HashMap<>(mapLength);
    //循环加入map集合
    for (int i = 0; i < ; i++) {
        //截取一组字符串
        String[] strArray = strings[i].split("=");
        //strArray[0]为KEY  strArray[1]为值
        (strArray[0],strArray[1]);
    }
    return map;
}

如有建议,欢迎指出。

String,StringBuffer,StringBuilder有什么区别?项目中什么时候用?