A:案例:我有如下一个字符串:”91 27 46 38 50”,请写代码实现最终输出结果是:”27 38 46 50 91”
- 分析:
- 1,将字符串切割成字符串数组,用String类的split方法:String[] split(String regex);
- 2,将字符串转换成数字并将其存储在一个等长度的int数组中
- 3,排序,Arrays类的sort方法,需要导入相应类
- 4,将排序后的结果遍历并拼接成一个字符串
*/
注意:字符串也可排序,但是按第一位数字比较,故排序前应将String数组转换成int数组
import java.util.Arrays;
//1,将字符串切割成字符串数组
String s="91 28 46 28 50";
String []sArr=s.split(" ");
//2,将字符串转换成数字,并将其存储在一个等长度的int数组中
int[] arr = new int[sArr.length]; //动态初始化数组
for(int i=0;i<arr.length;i++) {
arr[i]=Integer.parseInt(sArr[i]); //将数字字符串转换成数字
}
//3.排序
Arrays.sort(arr);
//4,将排序后的结果遍历并拼接成一个字符串
//方法①:占用资源多,不断产生String垃圾,不推荐
String str="";
for(int j=0;j<arr.length;j++) {
if(j==arr.length-1) { //如果是最后一个,直接相加
str=str+arr[i];
}else {
str=str+arr[i]+""; //不是最后一个,追加一个空格
}
}
System.out.println(str);
// //方法②,优化较好
StringBuilder sb = new StringBuilder();
for (int i = 0; i < arr.length; i++) {
if(i == arr.length - 1) {
sb.append(arr[i]);
}else {
sb.append(arr[i] + " ");
}
}
System.out.println(sb);