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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 梁耀今 中级黑马   /  2013-3-12 16:30  /  1326 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 梁耀今 于 2013-3-12 17:44 编辑

怎样将数组[a,A,h,f,H,F] 排序成[A,a,F,f,H,h]
就是按字母规律排序,但大写字母在前,小写在后。

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1 5分,加油~

查看全部评分

9 个回复

倒序浏览
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 17:40

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
我有点搞不清,你这个数组是神马类型的啊
回复 使用道具 举报
本帖最后由 梁耀今 于 2013-3-12 17:08 编辑
熊冠银 发表于 2013-3-12 16:49
我有点搞不清,你这个数组是神马类型的啊

char类型或者String类型啊?看不懂啊????
回复 使用道具 举报
是String类型的数组 c是数组名
回复 使用道具 举报
梁耀今 发表于 2013-3-12 17:04
char类型或者String类型啊?看不懂啊????

char类型你给我带个' '或者String你带个" "
回复 使用道具 举报
猫腻 高级黑马 2013-3-12 17:33:21
7#
如果已解决,如果24小时内未结贴,将减掉1技术分。
回复 使用道具 举报
猫腻 发表于 2013-3-12 17:33
如果已解决,如果24小时内未结贴,将减掉1技术分。

怎样结贴啊?
回复 使用道具 举报
梁耀今 发表于 2013-3-12 17:37
怎样结贴啊?


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

改成【已解决】就行了~
回复 使用道具 举报
{: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.                 }
复制代码

点评

如果稍微有点注释就更好了~  发表于 2013-3-12 18:29
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马