* 需求:我有如下一个字符串:”91 27 46 38 50”, * 请写代码实现最终输出结果是:”27 38 46 50 91”
* 1,首先要把字符串分割开用正则中的split方法 * 2,定义一个和字符串数组一样大小的int数组 * 3,把字符串数组转换成数字字符 * 4,排序,用sort方法 * 5,拼接成新的字符串
package com.ifenx8.regex;
import java.util.Arrays;
public class Demo_Test {
/**
* A:案例演示
* 需求:我有如下一个字符串:”91 27 46 38 50”,
* 请写代码实现最终输出结果是:”27 38 46 50 91”
* B:分析
* 1,首先要把字符串分割开用正则中的split方法
* 2,定义一个和字符串数组一样大小的int数组
* 3,把字符串数组转换成数字字符
* 4,排序,用sort方法
* 5,拼接成新的字符串
*/
public static void main(String[] args) {
String s = "91 27 46 38 50";
String[] arr = s.split(" ");//分割成字符串数组
int[] arr1 = new int[arr.length];//定义一个和字符串数组等长的int数组
for (int i = 0; i < arr1.length; i++) {
arr1[i] = Integer.parseInt(arr[i]);//把字符串数组转成int类型
}
Arrays.sort(arr1);//把int类型的数组进行排序
//拼接成字符串的两种方法
//方法一,用string 此方法会产生垃圾,占内存 不推荐
String s2 = "";
for (int i = 0; i < arr1.length; i++) {
if(i == arr1.length-1){
s2 = s2 + arr1[i];
}else{
s2 = s2 + arr1[i] + " ";
}
}
System.out.println(s2);
System.out.println("=============");
//方法二,用StringBuilder
StringBuilder s3 = new StringBuilder();
for (int i = 0; i < arr1.length; i++) {
if(i == arr1.length){
s3.append(arr1[i]);
}else{
s3.append(arr1[i] + " ");
}
}
System.out.println(s3);
}
}