JAVA 面向对象 之— 将给定字符串中的数字排序
-
需求:
请编写程序,把给定字符串中的数字排序
给定的字符串是: “91 27 -45 46 38 50”
最终输出结果是: “-45 27 38 46 50 91” -
分析:
- a: 定义目标字符串
- b: 对这个字符串进行切割,得到的就是一个字符串数组
- c: 把b中的字符串数组转换成int类型的数组
- (1): 定义一个int类型的数组,数组的长度就是字符串数组长度
- (2): 遍历字符串数组,获取每一个元素.将其转换成int类型的数据
- (3): 把int类型的数据添加到int类型的数组的指定位置
- d: 排序
- e: 创建一个StringBuilder对象,用来记录拼接的结果
- f: 遍历int类型的数组, 将其每一个元素添加到StringBuilder对象中
- g: 就是把StringBuilder转换成String
- h: 输出
-
程序:
public static void main(String[] args) { //定义目标字符串 String str = "91 27 -45 46 38 50"; //字符串切割,用正则表达式 String[] s = str.split(" "); //定义临时数组, 临时数组的长度就是字符串数组的长度 int[] tempArr = new int[s.length]; //定义字符串缓冲区 StringBuffer sb = new StringBuffer(); //将字符串数组转换成int类型的数组 for (int i = 0; i < s.length; i++) { tempArr[i] = Integer.parseInt(s[i]); //String --- int } //数组排序 Arrays.sort(tempArr); //将数组元素添加到字符串缓冲区 for (int j = 0; j < tempArr.length; j++) { sb.append(tempArr[j]).append(" "); } //StringBuilder --- String String string = sb.toString().trim(); //trim()去掉字符串右边的空格 System.out.println(string); }