1 /* 2 * 对一个字符串中的数值进行从小到大的排序。 3 * 4 * "20 78 9 -7 88 36 29" 5 * 6 * 思路: 7 * 1,排序,string要转换成int。 8 * 2,如何获取到这个字符串中的这些需要排序的数值? 9 * 发现这个字符串中其实都是空格来对数值进行分隔的。 10 * 所以就想到用字符串对象的切割方法将大串变成多个小串。 11 * 3,数值最终变成小字符串,怎么变成一个int数呢? 12 * 字符串-->基本类型 可以使用包装类。 13 * 14 * 大串变小串--》String变int--》int 排序--》int变String 15 */ 16 17 public class WrapperTest { 18 19 private static final String SPACE_SEPARATOR = " "; 20 21 public static void main(String[] args) { 22 23 String numStr = "20 78 9 -7 88 36 29"; 24 25 System.out.println(numStr); 26 numStr = sortStringNumber(numStr); 27 System.out.println(numStr); 28 29 } 30 31 public static String sortStringNumber(String numStr) { 32 33 //1,将字符串变成字符串数组。 34 String[] str_arr = stringToArray(numStr); 35 36 //2,将字符串数组变成int数组。 37 38 int[] num_arr = toIntArray(str_arr); 39 40 //3,对int数组排序。 41 mySortArray(num_arr); 42 43 //4,将排序后的int数组变成字符串。 44 45 String temp = arrayToString(num_arr); 46 47 return temp; 48 } 49 //将排序后的int数组变成字符串 50 public static String arrayToString(int[] num_arr) { 51 52 StringBuilder sb = new StringBuilder(); 53 for(int x = 0; x<num_arr.length; x++){ 54 if(x!=num_arr.length-1) 55 sb.append(num_arr[x]+SPACE_SEPARATOR); 56 else 57 sb.append(num_arr[x]); 58 } 59 60 return sb.toString(); 61 } 62 //对int数组排序 63 public static void mySortArray(int[] num_arr) { 64 65 Arrays.sort(num_arr); 66 } 67 //将字符串数组变成int数组,使用parseInt() 68 public static int[] toIntArray(String[] str_arr) { 69 70 int[] arr = new int[str_arr.length]; 71 72 for (int i = 0; i < arr.length; i++) { 73 arr[i] = Integer.parseInt(str_arr[i]); 74 } 75 76 return arr; 77 } 78 79 80 //将字符串变成字符串数组。 81 public static String[] stringToArray(String numStr) { 82 String[] str_arr = numStr.split(SPACE_SEPARATOR); 83 84 85 return str_arr; 86 } 87 88 }