黑马程序员技术交流社区

标题: 把字符串排成AaBbCc...顺序 [打印本页]

作者: iceknc    时间: 2015-9-26 17:01
标题: 把字符串排成AaBbCc...顺序
/**
  * 将字符串按字典顺序排列,字符串只能由大小写字母跟数字组成
  *
  * @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);
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2