字符串中数据排序
需求:有一个字符串:"12 20 13 18 15",请写程序实现最终的输出结果是:"12 13 15 18 20"
思考:每一个数据都是在字符串中,如何拿出来放到一个int数组中
思路: 1、定义一个字符串 2、把字符串中的数字数据存储到一个int类型的数组中 (1)如何得到字符串中的每一个数字数据?如下
xxxxxxxxxxpublic String[] split(String regex); //该方法的返回数据是String类型的数组(2)定义一个int数组,把String[]数组中的每一个元素存储到int数组中
xxxxxxxxxxpublic static int parseInt(String s)3、对int数组进行排序 4、把排序后的int数组中的元素进行拼接得到一个字符串,这里拼接采用StringBuilder来实现 5、输出结果
字符串中数据排序的练习
xxxxxxxxxxpackage ch12;
import java.util.Arrays;
public class a_10_1测试 {
public static void main(String[] args) {
//定义一个字符串 String s = "12 20 13 18 15";
//把字符串中的数字数据存储到一个int类型的数组中 String[] strArray = s.split(" ");//生成一个数组,数组名叫strArray。参数输入空格即可 for(int i=0; i<strArray.length; i++){//小小验证一下,即遍历看一下数组中有没有拿到数据 System.out.println(strArray[i]); }
System.out.println("----------------------------");
//定义一个int数组,把String[]数组中的每一个元素存储到int数组中 int[] arr = new int[strArray.length]; for(int i=0; i<arr.length; i++){ //arr[i] = strArray[i]; //问题:左边数组中的元素是int类型,右边是String类型。不能直接赋值,解决写法如下 arr[i] = Integer.parseInt(strArray[i]); //把数据全放进去 } for(int i=0; i< arr.length; i++){//小小验证一下,即遍历看一下数组中有没有拿到数据 System.out.println(arr[i]); }
System.out.println("----------------------------");
//对int数组进行排序 Arrays.sort(arr); //Arrays类里面提供的排序方法
//把排序后的int数组中的元素进行拼接得到一个字符串,这里拼接采用StringBuilder来实现 StringBuilder sbd = new StringBuilder(); for(int i=0; i<arr.length; i++){ if(i == arr.length - 1){ //说明是数组的最后一个数据 sbd.append(arr[i]); } else{ //说明不是数组的最后一个数据 sbd.append(arr[i]).append(" "); //那么给每一个数据后面都加一个空格 } } //把上面的StringBuilder类型转换为String类型 String result = sbd.toString(); //把右边的值赋值给左边,且赋值之后值的类型是字符串型,名字是result
//输出结果 System.out.println("result:" + result);
}}