您的位置:首页 > 编程语言 > Java开发

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

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

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<str.length();){

//每次循环默认从第一位开始
i=0;
//默认最小值是当前的索引0位
chrTemp=str.charAt(i);
//取默认最小值的索引,如果不在这里赋值索引,下面做最小值位置判断会报错
intIndex=i;
for(int j=1;j<str.length();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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息