hashMap按照键排序转化成String

/**
  * 给参数排序,根据参数的名称而不是根据参数值,以便生成一致的加密源字符串
  *
  * @param params 参数
  * @return String
  */
 private static String sort(Map<String, String[]> params) {
     if (params == null || params.size() < 1) {
         return "";
     }
     List<String> keys = new ArrayList<>(params.keySet());
     Collections.sort(keys);
     int size = keys.size();
     StringBuilder prestr = new StringBuilder();
     for (int i = 0; i < size; i++) {
         String key = keys.get(i);
         String[] values = params.get(key);
         Arrays.sort(values);
//拼接时,不包括最后一个&字符
         if (i == size - 1) {
             prestr.append(key).append("=").append(values[0]);
         } else {
             prestr.append(key).append("=").append(values[0]).append("&");
         }
     }
     return prestr.toString();
 }

猜你喜欢

转载自blog.csdn.net/YINZONGCHAO/article/details/107203689