问题引出:正常情况下用int数组可以直接用sort()方法排序,但是字符串不能。
思路:将字符串变成字符串数组,字符串数组变成int数组,再进行排序,排序后再变成字符串
将字符串中的数值从小到大排序
34 9 -7 12 67 25
public class CollectionDemo {
private static String SPACE = " ";//定义一个静态常量“ ”
public static void main(String[] args)
{
String numstr ="34 9 -7 12 67 25"; //进行字符串赋值初始化
System.out.println(numstr); //输出原始字符串
numstr = sortStringNumber(numstr); //调用sortStringNumber()方法
System.out.println(numstr); //输出排序后的内容
}
//创建sortStringNumber()方法用来进行4个大转换操作
public static String sortStringNumber(String numstr)
{
//1.将字符串变成字符串数组
String[] str_arr = stringToArrary(numstr); //调用stringToArrary()方法
//2.将自字符串数组变成int数组
int[] num_str = toIntArray(str_arr); //调用toIntArrary()方法
//3.对int数组进行排序
mySortArrary(num_str); //调用mySortArrary()方法
//4.将排序后的int数组变成字符串
String temp = ArraytoString(num_str); //调用ArraytoString()方法
return temp;
}
public static String[] stringToArrary(String numstr) //创建stringToArrary()方法,实现将字符串变成字符串数组
{
String[] str_arr = numstr.split(SPACE); //调用split()函数,分割字符串,变成字符数组
return str_arr;
}
private static int[] toIntArray(String[] str_arr) //创建toIntArrary()方法,将自字符串数组变成int数组
{
int[] arr=new int[str_arr.length];
for (int i = 0; i < arr.length; i++)
{
arr[i]=Integer.parseInt(str_arr[i]); // 调用Integer中的parseInt()函数
}
return arr;
}
private static void mySortArrary(int[] num_str) /.创建mySortArrary()方法,.对int数组进行排序
{
Arrays.sort(num_str); //sort()方法就不用多说了
}
private static String ArraytoString(int[] num_str) //创建ArraytoString()方法,通过遍历数组num_str和调用append()函数,给int 数组元素之间加空格
{
StringBuilder sb= new StringBuilder();
for(int x=0;x
if(x!=num_str.length-1){
sb.append(num_str[x]+SPACE);
}
else{
sb.append(num_str[x]);
}
}
return sb.toString();
}