91名师指路-头部
91名师指路

java 对参数按照ASCII进行排序(从小到大)

由于某些原因,现在不支持支付宝支付,如需要购买源码请加博主微信进行购买,微信号:13248254750

背景:我们对参数按照ASCII进行排序(从小到大)


一:代码如下

利用TreeMap的排序特性来将按照参数的首字母按照ASCII从小到大的顺序进行排列
String userId="111";
String productId="222";
String remark="91名师指路";
String timestamp=String.valueOf(System.currentTimeMillis()); // 当前系统时间
String serialNo=String.valueOf(IdUtil.getSnowflake(1,1).nextId()); // 保证唯一即可

SortedMap<String, String> parmas=new TreeMap<>();
parmas.put("userId", userId);
parmas.put("productId", productId);
parmas.put("remark", remark);
parmas.put("timestamp", timestamp);
parmas.put("serialNo", serialNo);
log.info(parmas);

执行结果

{productId=222, remark=91名师指路, serialNo=1448095277423661056, timestamp=1634087793091, userId=111}


二:我们将参数进行ASCII排序后,假设我们还需要采用&进行拼接。

代码如下:

// 2 循环map使用&进行拼接
Set<Map.Entry<String, String>> entries = parmas.entrySet();
Iterator<Map.Entry<String, String>> iterator = entries.iterator();
List<String> values =new ArrayList();
while(iterator.hasNext()){
Map.Entry entry = (Map.Entry) iterator.next();
String k = String.valueOf(entry.getKey());
String v = String.valueOf(entry.getValue());
if(StringUtils.isNotBlank(k) && StringUtils.isNotBlank(v)){
values.add(k + "=" + v);
}
}
values.add("clientId=" + clientId);
String str=StringUtils.join(values, "&");
log.info("拼接参数: {}", str);

执行结果:

拼接参数: productId=222&remark=91名师指路&serialNo=1448095277423661056×tamp=1634087793091&userId=111&clientId=1446721298934927360



2021-10-13 09:23:14     阅读(5067)

名师出品,必属精品    https://www.91mszl.com

联系博主    
用户登录遮罩层
x

账号登录

91名师指路-底部