Java练习题14_6(第一阶段基础)

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

猜你喜欢

转载自blog.csdn.net/binge_kong/article/details/83306733