Java字符串排序,不用数组,联系字符串操作方法

之前去面试做的一道面试题,不用数组,只是锻炼一下字符串的操作,如果有更好的写法,欢迎各位大神指出。

 

public class characterSorting {
    public static void main(String[] args) {
            //原字符串
        String str="1h2h1kjhe";
            //新字符串
        String newStr="";
            //记录最小值
        char chrTemp;
            //记录最小值索引
        int intIndex;
            //查看一下原字符串
         System.out.println(str);
        for(int i=0;i
                //每次循环默认从第一位开始
            i=0;
                //默认最小值是当前的索引0位
            chrTemp=str.charAt(i);
                //取默认最小值的索引,如果不在这里赋值索引,下面做最小值位置判断会报错
            intIndex=i;
            for(int j=1;j                 if(chrTemp>str.charAt(j)){

                        //循环找到最小值 并记录最小值和当前最小值的索引
                    chrTemp=str.charAt(j);
                    intIndex=j;
                }
            }

            //把当前最小值给到新的字符串中
            newStr=newStr.concat(String.valueOf(chrTemp));
                //做判断 如果最小值是在字符串的最后一位
            if(intIndex==str.length()-1){
                    //截取原字符串从索引0位到索引的
                str=str.substring(0,intIndex);
            }

                //做判断 如果最小值不在最后一位,既最小值在字符串中间
            else{
                    //截取原字符串从索引第0位到当前位,并连接索引当前位+1到最后,将最小值剪掉
                str=str.substring(0,intIndex).concat(str.substring(intIndex+1));
            }

                //如果原字符串中只剩下一位,则直接将原字符串连接到新字符串中的最后
            if(str.length()==1){
                newStr=newStr.concat(str);
                break;
            }
        }

        
            //最后查看一下新字符串
        System.out.println(newStr);
    }
}

转载于:https://my.oschina.net/u/3545445/blog/1143162

你可能感兴趣的:(java,面试)