java小练习,将字符串中的数值进行升序排序

问题引出:正常情况下用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<num_str.length;x++){
if(x!=num_str.length-1){
sb.append(num_str[x]+SPACE);
}
else{
sb.append(num_str[x]);
}
}
return sb.toString();
}

posted @ 2020-09-01 20:26  鑫怜彦  阅读(531)  评论(0)    收藏  举报