字符串String s=”SDsBEaA”,要求最后生成s=”AaBDESs”,能给下方法吗?最好给下具体代码

解决方案 »

  1.   

    就是做排序吧?把字母按照先后输出
    忽略大小写是吧
    自己查一下API 这个不难的
      

  2.   

    直接一个个用char拿出来,放在数组里排序 再输出
      

  3.   

    API早查过了,排序的话是Collections中的的sort()方法,但是这个方法区分大小写,
      

  4.   

    给一个想法,用char一个个拿出来,比较大小,其实就是比较ascii
    难点是因为忽视大小写,其实可以做个判断,因为a的ascii比A大,所以可以与大Z比较,比大Z大的就是小写字母,你将它的ascii-32后就可以得到大写的字母,然后通过这个方式确定位置,最后得到结果
      

  5.   


    具体实现不麻烦阿,循环罢了,当然api中有现成的那最好了
    没有的话就只有自己动手了
      

  6.   

    char c = s.toCharArray();
    //排序
    for(int i=0;i<c.length-1;i++){
        if(c[i]>90){                  //c[i]为小写
            if(c[i+1]>90){            //c[i+1]也为小写
                if(c[i]-c[i+1]>0){
                    int j = c[i];
                    c[i] = c[i+1];
                    c[i+1] = j;
                }
            }else{                    //c[i+1]为大写
                 int k = c[i]-32;
                 if(c[i+1]<k){
                     k = c[i];
                     c[i] = c[i+1];
                     c[i+1] = k;
                 }
            }
        }
    }else{
        if(c[i+1]<=90){
           if(c[i]>c[i+1]){
               int j = c[i];
               c[i] = c[i+1];
               c[i+1] = j;
           }
        }else{
           int k = c[i+1]-32;
           if(k>c[i]){
              k = c[i+1];
              c[i+1] = c[i];
              c[i] = k;
           }
        }
    }
      

  7.   

    char[] c = s.toCharArray();
      

  8.   


    static final String objectString = "JDBCspecificatiodefiesasetofstadarddatabasecolumtypesdefiedi"
    + "javasqlTypesclassadaveryspecificmappigofthesetypestoJavaObjectTy"
    + "pessuchasjavalagStrigjavamathBigDecimaletcSometimesthereisaeedto"
    + "useacustomJavatypeotkowtoJDBCdriverCayeeModelerallowstocofigurea"
    + "arbitraryJavaclassasaorgapachecayeemapObjAttributetypebysimplyet"
    + "erigafullyqualifiedamesuchclassithetypecolumofaObjAttributeHowe"
    + "verthereismoretoitthajustthatCayeeeedstokowhowtoistatiatethistyp"
    + "efromadatabaseprimitivevalueadcoverslyhowtotrasformaobjectofthec"
    + "ustomtypetoaJDBCcompatibleobjectJDBCspecificatiodefiesasetofsta"
    + "darddatabasecolumtypesdefiedijavasqlTypesclassadaveryspecificmapp"
    + "igofthesetypestoJavaObjectTypessuchasjavalagStrigjavamathBigDecim"
    + "aletcSometimesthereisaeedtouseacustomJavatypeotkowtoJDBCdriverCaye"
    + "eModelerallowstocofigureaarbitraryJavaclassasaorgapachecayeemapObj"
    + "Attributetypebysimplyeterigafullyqualifiedamesuchclassithetypecol"
    + "umofaObjAttributeHoweverthereismoretoitthajustthatCayeeeedstokowhow"
    + "toistatiatethistypefromadatabaseprimitivevalueadcoverslyhowtotrasfo"
    + "rmaobjectofthecustomtypetoaJDBCcompatibleobject";
    char chars[] = objectString .toCharArray();
    // 对该字符数据进行排序
    Arrays.sort(chars);
    System.out.println(String.copyValueOf(chars));
    // 定义由于存储转换后字符的字符序列
    StringBuilder transferStringBuffer = new StringBuilder();
    List<Integer> filterOffSet = new ArrayList<Integer>();
    for (int i = 0; i < chars.length; i++) {
    // 如果该位置的字符已经被使用过则直接跳过
    if (filterOffSet.indexOf(i) != -1) {
    continue;
    }
    // 如果当前位置的字符与其相邻的字符相同,则直接跳过
    if (i + 1 < chars.length && chars[i] == chars[i + 1]) {
    transferStringBuffer.append(chars[i]);
    continue;
    }
    transferStringBuffer.append(chars[i]);
    // 从当前字符所在位置的后面开始循环查询器对应的小写字符
    for (int j =i ; j < chars.length; j++) {
    // 如果后续字符串存在小写字符则将其添加到结果集中,并记录其位置
    // 并继续查找后续字符是否有相同的小写字符
    if (chars[j] - chars[i] == 32) {// 大写字母与小写字母差32
    transferStringBuffer.append(chars[j]);
    filterOffSet.add(j);
    }
    }
    }
    System.out.println(System.currentTimeMillis() - stime + "ms");
    System.out.println(objectString);
    System.out.println(transferStringBuffer.toString());
    或许还有更高效的方法
      

  9.   

    mport java.util.*;
    public class Test{
        public static void main(String[] args) {
            //System.out.println(countBits(-1));
            System.out.println(sortString("SDsBEaA"));
        }
        public static String sortString(String str){
         Character[] strChars=new Character[str.length()];
         char[] strchars=str.toCharArray();
         int count=0;
         for(char c:strchars){
         strChars[count++]=c;
         }
         Arrays.sort(strChars,new Comparator<Character>(){
         public int compare(Character c1,Character c2){
         if(c1.equals(c2))return 0;
         if(Character.toLowerCase(c1)==Character.toLowerCase(c2)){
         return c1-c2;
         }else{
         return Character.toLowerCase(c1)-Character.toLowerCase(c2);
         }
         }
         public boolean equals(Object o){
         return true;
         }
         });
         count=0;
         for(Character c:strChars){
         strchars[count++]=c;
         }
         return new String(strchars);    }
    }
      

  10.   

    基本数据不能使用Comparator,char[]不能直接转为Character[] 郁闷!!!