近日在项目中遇到一个需求,要求显示的下拉菜单select选项的汉字字符进行排序,项目是前后端分离Ajax交互的,前端页面初始化时请求后端拿到菜单数据。项目中的所有菜单数据均是后端提供的。

场景是后端请求数据库拿到了菜单的数据,是一段字符串:例如

"1:阿里巴巴;2:京东;3:有赞;4:蚂蚁金服;5:网易;6:顺丰科技;7:蘑菇街;8:唯品会;9:拼多多;10:同花顺;"

实现按照各个公司的名称进行排序,要求"数字:公司"的对应不能改变,返回一个完整的字符串,这意味着排序后要重新拼接。

可以借助集合框架Map和List来完成功能:

  • 输入字符串
  • 将字符串以";"分割成字符串数组
  • 公司名称与对应的值存入map
  • 公司名称存入list
  • 对list进行排序
  • 根据排序后的list去map里查找映射进行字符拼接
  • 返回字符串
public static void main(String[] args) {
String str = "1:阿里巴巴;2:京东;3:有赞;4:蚂蚁金服;5:网易;6:顺丰科技;7:蘑菇街;8:唯品会;9:拼多多;10:同花顺;";
System.out.println(Sort(str));
}
static String Sort(String string){
String [] options = string.split(";");
StringBuffer strSort = new StringBuffer();
Map<String, String> sort = new HashMap<>();
List<String> list = new ArrayList<>();
//把快递公司名称与对应的值存入map
for(String x:options){
String[] arr = x.split(":");
sort.put(arr[1], arr[0]);//"公司名称":"value"
list.add(arr[1]); //“公司名称”
}
//使用集合框架Collections提供的sort方法,传入list和comparator
Collections.sort(list, Collator.getInstance(Locale.CHINA));
for(String str:list){
strSort.append(sort.get(str)+":"+str+";");
}
return strSort.toString();
}

输出:1:阿里巴巴;2:京东;4:蚂蚁金服;7:蘑菇街;9:拼多多;6:顺丰科技;10:同花顺;5:网易;8:唯品会;3:有赞;

对一串用":"和";"拼接的汉字字符串排序的更多相关文章

  1. python如何通过正则表达式一次性提取到一串字符中所有的汉字

    1.python如何通过正则表达式一次性提取到一串字符中所有的汉字 https://blog.csdn.net/py0312/article/details/93999895 说明:字符串前的 “ r ...

  2. asp.net 获取汉字字符串的拼音首字母,含多音字

    需求:在很多时候数据查询的时候,我们希望输入某个人姓名的拼音首字母进行查询,例如“潘长江”,输入“pcj”,就能搜索潘长江相关信息. 实现: #region 获取汉字转换拼音 首字母 public s ...

  3. ios 汉字字符串数组拼音排序

    ios没有提供简单的汉字拼音排序方法,在网上看到了oc方法,这里写以下对应的swift方法 var stringCompareBlock: (String,String)->Bool = { ( ...

  4. php使用strlen()判断中文汉字字符串长度

    php使用strlen()判断中文汉字字符串长度 对于含有中文情况,此时可以采用: iconv_strlen($str,"UTF-8"); iconv_strlen 是无论是何种编 ...

  5. Oracle 将不同列的值拼接成一个 字符串

    利用拼接操作符“||”或者 CONCAT('','')函数,将不同列的值 拼接成一个 字符串   -- 方法一:推荐 SELECT S.TEAM ||'**'|| S.NAME ||'**'|| S. ...

  6. ***PHP各种编码的汉字字符串截取

    虽然PHP有现成的截取字符串函数substr(),但是这个函数不能对汉字字符串进行截取,要实现这种效果还需要我们自己去编写相应的函数.汉字有多种编码,比如GB2312,UTF-8等,汉字字符串的截取需 ...

  7. OC中如何把字典中的数据拼接成url字符串

    在使用objective-c语言开发iOS应用中,会向服务器通过URL请求一些数据,因此对URL的拼接肯定少不了.而在iOS中,我们一般是通过将字典中的数据拼接成我们要请求的URL字符串,那这个是怎么 ...

  8. js中json对象数组按对象属性排序(sort方法)---2(根据拼音排序汉字和排序英文)

    本例主要实现 中文汉字按拼音排序的方法和英文按照首字母排序的方法. 要排序的数据: //要排序的数据 let data = [ {chinese: '蔡司', english: 'Chase'}, { ...

  9. python拼接变量、字符串的3种方法

    第一种,加号(“+”): print 'py'+'thon' # output python str = 'py' print str+'thon' # output python 第二种 ,空格: ...

随机推荐

  1. PTA (Advanced Level) 1016 Phone Bills

    Phone Bills A long-distance telephone company charges its customers by the following rules: Making a ...

  2. 请别再拿“String s = new String("xyz");创建了多少个String实例”来面试了吧---转

    http://www.iteye.com/topic/774673 羞愧呀,不知道多少人干过,我也干过,面壁去! 这帖是用来回复高级语言虚拟机圈子里的一个问题,一道Java笔试题的. 本来因为见得太多 ...

  3. vue2.0读书笔记2-进阶

    一.深入响应式原理 二.过渡效果 三.过渡状态 四.Render函数 五.自定义指令 六.混合 七.插件 八.单文件组件 九.生产环境 十.路由 vue-router: http://router.v ...

  4. Softwaretechnik

    1.Einführung 1.1 Was ist Softwareentwicklung Softwareentwicklung ist eine Wissenschaftliches Fach üb ...

  5. IOS bug之Code Sign error:Provisioning profile

    刚才解决一个版本冲突的bug,记在了博客里,这让我想起了另外一个bug,当时犹豫公司的开发者账号过期了,我打开应用运行时提示Code Sign error:Provisioning profile   ...

  6. shell脚本生成服务器密码

    #!/bin/bash len=90 str=(a b c d e f g h i j k l m n o p q r s t u vw x y z A B C D E F G H I J K L M ...

  7. Form身份验证

    Forms身份验证Web.config<system.web><authentication mode="Forms">            <fo ...

  8. C# 配置文件操作类

    注意添加引用:System.Configuration: using System; using System.Collections.Generic; using System.Text; usin ...

  9. 看libevent所遇到的英语生词

    libevent – an event notification library The libevent API (libevent应用程序)provides a mechanism(机制) to ...

  10. 优化SQLServer

    由于SQLServer,数据文件mdf过大,造成系统异常卡 一. 更改隔离级别 ALTER DATABASE [B2EC] SET SINGLE_USER WITH ROLLBACK IMMEDIAT ...