ListToString和MapToString

140 篇文章 9 订阅
130 篇文章 22 订阅

问题背景

  • ListToString一般用于例如像idList,转换成where xxx in(idListStr)的情况。
  • MapToString一般用于例如像微信签名的时候,转换成&xxx=1&xxxx=2&xxxxx=3的情况

MapToString

把数组所有元素排序,并按照“参数=参数值”的模式用“&”字符拼接成字符串

   /**  
     * 把数组所有元素排序,并按照“参数=参数值”的模式用“&”字符拼接成字符串  
     * @author zhengk
     */   
    public static String createSignString(Map<String, String> params) {   
        List<String> keys = new ArrayList<String>(params.keySet());   
        Collections.sort(keys);   
        String prestr = "";   
        for (int i = 0; i < keys.size(); i++) {   
            String key = keys.get(i);   
            String value = params.get(key);
            if("sign".equals(key)){
                //sign不参与签名
            }else if (i == keys.size() - 1) {// 拼接时,不包括最后一个&字符
                prestr = prestr + key + "=" + value;   
            } else {   
                prestr = prestr + key + "=" + value + "&";   
            }   
        }
        return prestr;
    }   

例如params包含{"a":"1","c":"2","b":"3"},则输出为a=1&b=3&c=2(排序+拼接)

ListToString

把List所有元素转化为以,逗号隔开且'包围的字符串的方法,可用于sql的in拼接

   /**  
     * 把List所有元素转化为以`,`逗号隔开且`'`包围的字符串的方法,可用于sql的in拼接  
     * @author zhengk
     */   
	private static String list2str(List list){
		String listStr="";
		for (int i = 0; i < list.size(); i++) {
			String value = list.get(i)+"";
			if(StringUtils.isBlank(value)){
                //空值不参与
            }else if (i == list.size() - 1) {// 拼接时,不包括最后一个&字符
            	listStr=listStr+" '"+value+"'";   
            } else {   
            	listStr=listStr+" '"+value+"',";   
            }   
		}
		return listStr;
	}

假设传入的liList包含的元素为[ay2wbNP=aNONO=NferuW=]
/*dialect*/ update t_mm_plannedorder t set t.cfplantype='additionalPlan' where t.fid in ( 'ay2wbNP=', 'aNONO=', 'NferuW=')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值