字符串中数据排序
需求:有一个字符串:"12 20 13 18 15",请写程序实现最终的输出结果是:"12 13 15 18 20"
思考:每一个数据都是在字符串中,如何拿出来放到一个int数组中
思路: 1、定义一个字符串 2、把字符串中的数字数据存储到一个int类型的数组中 (1)如何得到字符串中的每一个数字数据?如下
xxxxxxxxxx
public String[] split(String regex); //该方法的返回数据是String类型的数组
(2)定义一个int数组,把String[]数组中的每一个元素存储到int数组中
xxxxxxxxxx
public static int parseInt(String s)
3、对int数组进行排序 4、把排序后的int数组中的元素进行拼接得到一个字符串,这里拼接采用StringBuilder来实现 5、输出结果
字符串中数据排序的练习
xxxxxxxxxx
package 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);
}
}