2018.10.23 晴
程序练习题1 :把给定字符串中的数字字符排序需求:我有如下一个字符串:”91 27 46 38 50”,请写代码实现最终输出结果是:”27 38 46 50 91”
1.分析:
(1)将字符串切割成单个数字字符
实现方法:String类 中的split()方法
(2)将字符数组的元素转换为int类型存储在int数组中(因为字符类型元素排序是根据第一个数字字符排序的(如100 会小于80))
实现方法: Intager包装类中的parseInt() 方法
(3)将数组进行排序
实现方法: 可以用选择排序或者冒泡排序
或者Arrays中的sort()方法
(4)将Int数组中元素拼接成字符串
实心方法:*String 的空串进行拼接(由于是不可变字符序列,会造成很多垃圾)
*StringBuilder 进行拼接(可变字符串)
实现代码:
package com.heima.text;
import java.util.Arrays;
public class text {
public static void main(String[] args) {
String s = "91 27 46 38 50"; //原始字符串
//1.将字符串切割成成字符数组,split()
String regex = "\\s";
String[] arr1 = s.split(regex);
//2.将字符数组中的字符串转换成数字,再存储在一个等长度的int类型数组中,parseInt()
int[] arr2 = new int[arr1.length]; //创建一个等长度的int类型数组
for (int i = 0; i < arr2.length; i++) {
arr2[i] = Integer.parseInt(arr1[i]);
}
//3.将数组进行排序,sort()
Arrays.sort(arr2);
//4.将int类型数组转换成字符串,append()
StringBuilder sb = new StringBuilder(); //新建一个可变字符串类对象
for (int i = 0; i < arr2.length; i++) {
if(i == arr2.length-1) {
sb.append(arr2[i]);
}else {
sb.append(arr2[i] + " ");
}
}
//5.打印
System.out.println(sb);
}
}
}
}
代码结果:
27 38 46 50 91