A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© iceknc 中级黑马   /  2015-9-26 17:01  /  562 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/**
  * 将字符串按字典顺序排列,字符串只能由大小写字母跟数字组成
  *
  * @param str
  *            要排序的字符串
  * @return 排好序的字符串,格式:AaBbCcDd...Zz0123456789
  */
public static String stringSrot(String str) {
          if (str.length() == 0 || str == null)
                   return str;
          String standard = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789";
          // 先将字符串变成字符数组
         char[] chr = str.toCharArray();
          // 把字符数组变成对应标准字符串位置的int型数组
          int[] num = new int[str.length()];
        for (int i = 0; i < chr.length; i++) {
                   num[i] = standard.indexOf(chr[i]);
         }
          // 对转换成int型的数组排序
         Arrays.sort(num);
         // 排序后的int型再转成char型数组
          for (int i = 0; i < chr.length; i++) {
                   chr[i] = standard.charAt(num[i]);
          }
          // 将排序后的字符数组转成字符串返回
         return String.copyValueOf(chr);
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马