字符A,c,b,C,B,a怎么排序成A,a,B,b,C,c

解决方案 »

  1.   

    冒泡排序        public static void sortCharArray(char[] c)
    {
    for(int i=0;i<c.length-1;i++)
    for(int j=i+1;j<c.length;j++) {
    if(compareCharIgnoreCase(c[i],c[j])==1)
    {
    char cc=c[i];
    c[i]=c[j];
    c[j]=cc;
    }
    }
    }
    private static int compareCharIgnoreCase(char c1,char c2)//判断2个字符的关系.忽略大小写
    {
    if(c1==c2)
    return 0;
    int offc1=(c1-'A')%32;
    int offc2=(c2-'A')%32;
    if(offc1!=offc2)
    return offc1>offc2?1:-1;
    return c1>c2?1:-1;
    }
      

  2.   

    public class test{
    public static void main(String args[]){
    char in[]={'A','c','b','C','B','a'};
    char low[]=new char[3];
    char up[]=new char[3];
    char temp;
    int l,u;
    l=0;u=0;
    for(int i=0;i<6;i++){//按大小写分成两个数组
    if(Character.isLowerCase(in[i])){
    low[l]=in[i];
    l++;
    }
    else{
    up[u]=in[i];
    u++;
    }

    }
    for(int i=0;i<2;i++){//数组排序
    for(int j=0;j<2-i;j++){
    if(low[j]>low[j+1]){
    temp=low[j];
    low[j]=low[j+1];
    low[j+1]=temp;
    }
    if(up[j]>up[j+1]){
    temp=up[j];
    up[j]=up[j+1];
    up[j+1]=temp;
    }
    }
    }
    for(int i=0;i<3;i++){//输出
    System.out.print(up[i]);
    System.out.print(low[i]);

    }

    }
    }
      

  3.   


    public class test{
    public static void main(String args[]){
    char in[]={'A','c','b','C','B','a'};
    char low[]=new char[3];
    char up[]=new char[3];
    char temp;
    int l,u;
    l=0;u=0;
    for(int i=0;i<6;i++){//按大小写分成两个数组
    if(Character.isLowerCase(in[i])){
    low[l]=in[i];
    l++;
    }
    else{
    up[u]=in[i];
    u++;
    }

    }
    for(int i=0;i<2;i++){//数组排序
    for(int j=0;j<2-i;j++){
    if(low[j]>low[j+1]){
    temp=low[j];
    low[j]=low[j+1];
    low[j+1]=temp;
    }
    if(up[j]>up[j+1]){
    temp=up[j];
    up[j]=up[j+1];
    up[j+1]=temp;
    }
    }
    }
    for(int i=0;i<3;i++){//输出
    System.out.print(up[i]);
    System.out.print(low[i]);

    }

    }
    }
      

  4.   

    思路:先把所有字母转换成大写或者小写,再排序,然后把临近相同的靠后的那个转换成小写。import java.util.*;/**
     * @author Administrator
     * 
     */
    public class Test {
    /**
     * 把数组里小写转换成大写
     * 
     * @param arr
     * @return
     */
    public static String[] toUpperCase(String[] arr) {
    for (int i = 0; i < arr.length; i++) {
    arr[i] = arr[i].toUpperCase();
    }
    return arr;
    } /**
     * 若前后2个元素equals,那么把后面那个转换成小写
     * 
     * @param arr
     * @return
     */
    public static String[] upCaseToLower(String[] arr) {
    for (int i = 0; i < arr.length - 1; i++) {
    if (arr[i].equals(arr[i + 1])) {
    arr[i + 1] = arr[i + 1].toLowerCase();
    }
    }
    return arr;
    } public static void main(String[] args) {
    // TODO Auto-generated method stub
    String arr[] = { "A", "c", "b", "C", "B", "a" };
    String[] upCaseArr = toUpperCase(arr);
    // 排序
    Arrays.sort(upCaseArr);
    String afterSort[] = upCaseToLower(upCaseArr);
    for (String s : afterSort) {
    System.out.print(s + "   ");
    }
    }}上面的代码是用的String类型的数组,业可用Character类型,思路一样的。