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 }