黑马程序员技术交流社区

标题: 排序 [打印本页]

作者: 梁耀今    时间: 2013-3-12 16:30
标题: 排序
本帖最后由 梁耀今 于 2013-3-12 17:44 编辑

怎样将数组[a,A,h,f,H,F] 排序成[A,a,F,f,H,h]
就是按字母规律排序,但大写字母在前,小写在后。
作者: 于腾飛    时间: 2013-3-12 16:46
public class Test {

public static void main(String[] args) {
String[] c = new String[]{"F","a","f","h","A","g","K"};
  String tmp = null;
  for(int i=0 ; i < c.length ; ++i){
            for(int j=0; j <c.length - i - 1; ++j){
                if(compare(c[j], c[j+1])>0){
                    tmp = c[j];
                    c[j] = c[j + 1];
                    c[j + 1] = tmp;
                }
            }
  }
  
  for(String str:c) {
   System.out.println(str);
  }
}

public static int compare(String s1, String s2) {
  if(s1.toLowerCase().compareTo(s2.toLowerCase()) != 0)//首先忽略大小写比较
   return s1.toLowerCase().compareTo(s2.toLowerCase());
  if(s1.equals(s2))
   return 0;
  else
   return s1.compareTo(s2);
}
}
已有的代码 希望对你有帮助
作者: 熊冠银    时间: 2013-3-12 16:49
我有点搞不清,你这个数组是神马类型的啊
作者: 梁耀今    时间: 2013-3-12 17:04
本帖最后由 梁耀今 于 2013-3-12 17:08 编辑
熊冠银 发表于 2013-3-12 16:49
我有点搞不清,你这个数组是神马类型的啊

char类型或者String类型啊?看不懂啊????
作者: 赵亚威    时间: 2013-3-12 17:19
是String类型的数组 c是数组名
作者: 熊冠银    时间: 2013-3-12 17:27
梁耀今 发表于 2013-3-12 17:04
char类型或者String类型啊?看不懂啊????

char类型你给我带个' '或者String你带个" "
作者: 猫腻    时间: 2013-3-12 17:33
如果已解决,如果24小时内未结贴,将减掉1技术分。
作者: 梁耀今    时间: 2013-3-12 17:37
猫腻 发表于 2013-3-12 17:33
如果已解决,如果24小时内未结贴,将减掉1技术分。

怎样结贴啊?
作者: 陈丽莉    时间: 2013-3-12 17:43
梁耀今 发表于 2013-3-12 17:37
怎样结贴啊?


论坛发言的小技巧(已解决、上传图片、附件,回复可见...

改成【已解决】就行了~
作者: 许鑫星    时间: 2013-3-12 17:44
{:soso_e112:}换成char类型我也写了个。。。
  1.                 public static void main(String[] args) {
  2.                         Character[] arr = {'C','c','b','d','D','B'};
  3.                         for(int i = 0;i<arr.length;i++) {
  4.                                 for(int j=0;j<arr.length-i-1;j++) {       
  5.                                         double p,q;
  6.                                         if(Character.isUpperCase(arr[j])){
  7.                                                         p = Character.toLowerCase(arr[j])-0.5;
  8.                                                 }else{
  9.                                                         p=arr[j];
  10.                                                 }
  11.                                         if(Character.isUpperCase(arr[j+1])){
  12.                                                 q = Character.toLowerCase(arr[j+1])-0.5;
  13.                                         }else{
  14.                                                 q=arr[j+1];
  15.                                         }
  16.                                         if(p>q){
  17.                                                 Character c = arr[j+1];
  18.                                                 arr[j+1]=arr[j];
  19.                                                 arr[j]=c;
  20.                                         }
  21.                                 }
  22.                         }
  23.                         System.out.println(Arrays.asList(arr));
  24.                 }
复制代码





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