/**
* @param map
* @return 例如k=v&k=v 结果
*/
public static String getAsciiSort(Map<String, Object> map) {
// 移除值为空的
map.entrySet().removeIf(entry -> Objects.isNull(entry.getValue()) || "".equals(entry.getValue()));
List<Map.Entry<String, Object>> infoIds = new ArrayList<Map.Entry<String, Object>>(map.entrySet());
// 对所有传入参数按照字段名的 ASCII 码从小到大排序(字典序)
infoIds.sort((o1, o2) -> o1.getKey().compareToIgnoreCase(o2.getKey()));
StringBuilder sb = new StringBuilder();
for (Map.Entry<String, Object> infoId : infoIds) {
sb.append(infoId.getKey());
sb.append("=");
sb.append(infoId.getValue());
sb.append("&");
}
return sb.substring(0, sb.length() - 1);
}
Java Map根据键值按ASCII 码从小到大排序并用&连接,值为空的不拼接
于 2022-05-17 08:31:21 首次发布