近日在项目中遇到一个需求,要求显示的下拉菜单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. Rest分享

    分享提纲引言:微服务, 漂亮小姑娘,帅气小伙 这老头是个奇人,特别擅长抽象归纳和制造概念.特别是微服务这种新生的名词,都有一个特点:一解释就懂,一问就不知,一讨论就打架. REST是什么,是一个模式, ...

  2. MySQL---3、常用命令大全

    一.连接MySQL 格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1:连接到本机上的MYSQL. 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -ur ...

  3. C#获取Url不同路径的方法大全

    在 C# 中,用 Request 对象来获取 Url  的各种路径,包括上一页 Url.域名.绝对路径.相对路径和物理路径.虽然在某些情况下,无法获取到 Url,但可以获取到大部分情况下的 Url,下 ...

  4. Cheatsheet: 2017 06.01 ~ 06.30

    .NET Porting a .NET Framework library to .NET Core Performance Improvements in .NET Core High-perfor ...

  5. static关键字作用

    之前讲到final关键字的作用是每次面试的时候我必问求职者的两个问题之一,另外一个问题就是文本会写到的static.final和static一样,都是一个小问题可以看到一个人的基础是否扎实以及平时是否 ...

  6. js 数组常用的一些方法

    数组可以说是js经常会遇到的数据结构,以下我们对数组进行详细的学习! 一.数组的创建 var mycars = new Array(): || new Array(3);  || new Array( ...

  7. 【SSH网上商城项目实战08】查询和删除商品类别功能的实现

    转自:https://blog.csdn.net/eson_15/article/details/51338991 上一节我们完成了使用DataGrid显示所有商品信息,这节我们开始添加几个功能:添加 ...

  8. 使用命令行编译打包运行自己的MapReduce程序 Hadoop2.6.0

    使用命令行编译打包运行自己的MapReduce程序 Hadoop2.6.0 网上的 MapReduce WordCount 教程对于如何编译 WordCount.java 几乎是一笔带过… 而有写到的 ...

  9. eclipse中编写运行c/c++

    注意:此过程有点复杂 准备:1.MinGW:c/c++运行环境: 2.CDT 1.MinGW:安装程序:http://sourceforge.net/projects/mingw/?source=ty ...

  10. python gif动态图的合成

    1.确保imageio已经安装 pip install imageio 2.函数准备 def create_gif(image_list, gif_name): import imageio fram ...