字段按照key进行字典升序排列
本文转载,意在学习开发快速便捷。
新建工具类
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;public class SortUtils {/*** @param paraMap 参数* @param encode 编码* @param isLower 是否区分小写* @return*/public static String formatUrlParam(Map<String, String> param, String encode, boolean isLower) {String params = "";Map<String, String> map = param;try {List<Map.Entry<String, String>> itmes = new ArrayList<Map.Entry<String, String>>(map.entrySet());//对所有传入的参数按照字段名从小到大排序//Collections.sort(items); 默认正序//可通过实现Comparator接口的compare方法来完成自定义排序Collections.sort(itmes, new Comparator<Map.Entry<String, String>>() {@Overridepublic int compare(Entry<String, String> o1, Entry<String, String> o2) {// TODO Auto-generated method stubreturn (o1.getKey().toString().compareTo(o2.getKey()));}});//构造URL 键值对的形式StringBuffer sb = new StringBuffer();for (Map.Entry<String, String> item : itmes) {if (MyUtils.isNotBlank(item.getKey())) {String key = item.getKey();String val = item.getValue();val = URLEncoder.encode(val, encode);if (isLower) {sb.append(key.toLowerCase() + "=" + val);} else {sb.append(key + "=" + val);}sb.append("&");}}params = sb.toString();if (!params.isEmpty()) {params = params.substring(0, params.length() - 1);}} catch (Exception e) {return "";}return params;}
}
写个test
class Test {public static void main(String[] args) {Map<String, String> map = new HashMap<String, String>();map.put("crTce", "200");map.put("bitTe", "测试标题");map.put("aonTent", "测试内容");map.put("drder_To", "1807160850122023");String url = SortUtils.formatUrlParam(map, "utf-8", false);System.out.println(url);}
}
输出结果:aonTent=%E6%B5%8B%E8%AF%95%E5%86%85%E5%AE%B9&bitTe=%E6%B5%8B%E8%AF%95%E6%A0%87%E9%A2%98&crTce=200&drder_To=1807160850122023
字段按照key进行字典升序排列相关推荐
- mysql按某个条件升序_问题描述大家都知道, MySQL 中按某字段升序排列的 SQL 为 (以 id 为例,下同):SELECT * FROM `MyTable` WHERE...
问题描述 大家都知道, MySQL 中按某字段升序排列的 SQL 为 (以 id 为例,下同): SELECT * FROM `MyTable` WHERE `id` IN (1, 7, 3, 5) ...
- python3字典升序排序_python3从零学习-4.2、内置数据类型
内置标准类型: * Boolean(布尔) * Number(数字) * String(字符串) * List(列表) * Tuple(元组) * Sets(集合) * Dictionary(字典) ...
- python随机产生10个数然后前5个升序后5个降序_编写程序,生成包含 20 个随机数的列表,然后将前 10 个元素升序排列,后 10 个元素降序排列,并输出结果。_学小易找答案...
[填空题]在 Python3.x 中 input() 函数接收到的用户输入数据一律为 ________ . [填空题]运算符% (可以.不可以)对浮点数进行求余数操作. [简答题]解释 Python ...
- mysql杠杆加号什么意思_对tb_book表中的数据,按ID序号进行升序排列,查询语句是什么?_学小易找答案...
[单选题]修改数据库表结构用以下哪一项 ( ) [单选题]对于一个微小物理量,通常采用将其进行放大的方法实现测量,以下哪个不是物理实验方法? [单选题]扭摆实验中,为了测出金属匀质细杆绕质心对称轴的转 ...
- SQL-23 对所有员工的当前(to_date='9999-01-01')薪水按照salary进行按照1-N的排名,相同salary并列且按照emp_no升序排列...
这题需要注意 题目描述 对所有员工的当前(to_date='9999-01-01')薪水按照salary进行按照1-N的排名,相同salary并列且按照emp_no升序排列 CREATE TABLE ...
- 数组的合并和升序排列_JavaScript - 数组排序 6 种常见算法是什么?
前言 着急用的话,选择前两个就行了,后面的看看就好. 开发中,遇到数组排序的需求很频繁,这篇文章会介绍几个常见排序思路. 一.希尔排序(性能最好) 如果要从大到小排列,则 while(arr[n] & ...
- 数组的合并和升序排列_leetcode No.31 下一个排列
题目链接: 下一个排列 - 力扣(LeetCode)leetcode-cn.com 题目描述: 实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列. 如果不存在下一个 ...
- 数组的合并和升序排列_区间调度问题之区间合并
读完本文,你可以去力扣拿下如下题目: 56.合并区间 ----------- 上篇文章用贪心算法解决了区间调度问题:给你很多区间,让你求其中的最大不重叠子集. 其实对于区间相关的问题,还有很多其他类型 ...
- SQL:查找某个班级的人数并按班级人数多少进行排列,查找各班年龄最小的女生的班级号,学号,姓名,出生日期并按班级号升序排列
表:student 字段: studentnum(学号),studentname(学生姓名),classname(班级名称),sex(男:1,女:2),birthday(出生日期) 我现在数据库存储了 ...
最新文章
- frps server端配置_Docker 快速搭建 mock-server
- [C++] NULL VS nullptr
- “计算机艺术之父”、现代计算机技术先驱查理斯·苏黎去世,享年99岁
- 深入理解PHP中赋值与引用
- html5 video修改默认样式,HTML5中将video设置为背景的方法
- MongoDB服务重启及后台运行解决方法
- 机器学习非监督学习—k-means及案例分析
- orm2 中文文档 4.1 hasOne(多对一关系)
- post postman 传递数组对象_okhttp传递数组参数
- UML-类图-关键字如何使用?
- 回溯算法符号三角形java_算法设计与分析——符号三角形问题(回溯法)
- [AHK]定时运行脚本
- CAD中怎么旋转箭头符号?
- 小提琴弓是如何出现的?
- office2007在ppt中插入文件对象(可以单击打开)
- undefined is not a function错误解决
- 【电商】管理后台之账号管理
- 计算机课程和教学计划,计算机教学计划
- 计算机用word做海报,用Word设计制作广告海报实验.doc
- 与、或、非、同或、异或、蕴含的表示 C/C++