当前位置: 移动技术网 > IT编程>开发语言>Java > 对一串用":"和";"拼接的汉字字符串排序

对一串用":"和";"拼接的汉字字符串排序

2018年06月22日  | 移动技术网IT编程  | 我要评论
近日在项目中遇到一个需求,要求显示的下拉菜单select选项的汉字字符进行排序,项目是前后端分离Ajax交互的,前端页面初始化时请求后端拿到菜单数据。项目中的所有菜单数据均是后端提供的。 场景是后端请求数据库拿到了菜单的数据,是一段字符串:例如 : "1:阿里巴巴;2:京东;3:有赞;4:蚂蚁金服; ...

近日在项目中遇到一个需求,要求显示的下拉菜单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:有赞;

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网