- /**
- * 题目:对一个字符串中的数值进行从小到大的排序。
- * 思路:先要将字符串转换为int型数组,定义一个正则表达式进行切割,这里用冒泡排序(Arrays.sort()方法排序更简单),之后再转回为字符串。
- *@author
- */
- public class Day13Test4 {
-
- private static final String REG_SPACE = " +";
- public static void main(String[] args) {
-
- String str = "32 53 25 65 -3 5";
- //定义一个实现排序的方法。
- String str1 = sortStingArray(str);
- System.out.println(str1);
- }
- public static String sortStingArray(String str) {
- //定义一个将字符串转为int型数组的方法。
- int[] num_arr = stringToIntArray(str);
-
- //定义一个排序方法。
- int[] num_arr1 = sortIntArray(num_arr);
-
- //定义一个将int型数组转为字符串的方法。
- String str1 = intArrayToString(num_arr1);
- return str1;
- }
- public static String intArrayToString(int[] num_arr1) {
- //创建StringBuilder转换字符串。
- StringBuilder sb = new StringBuilder();
- for(int i = 0; i<num_arr1.length ;i++){
- if(i!=num_arr1.length-1)
- sb.append(num_arr1[i]+" ");
- else
- sb.append(num_arr1[i]);
- }
-
- return sb.toString();
- }
- public static int[] sortIntArray(int[] num_arr) {
- //冒泡排序。
- for (int x = 0;x<num_arr.length;x++){
- for (int y = 0;y<num_arr.length-x-1;y++){
- if (num_arr[y]>num_arr[y+1])
- swap(num_arr,y,y+1);
- }
- }
- return num_arr;
- }
- //换位方法。
- private static void swap(int[] num_arr, int y, int i) {
- int temp = num_arr[y];
- num_arr[y] = num_arr[y+1];
- num_arr[y+1] = temp;
- }
- //切割方法。
- public static int[] stringToIntArray(String str) {
- String[] arr = str.split(REG_SPACE);
- int[] num_arr = new int[arr.length];
- for (int i = 0; i<arr.length;i++){
- num_arr[i] = Integer.parseInt(arr[i]);
- }
- return num_arr;
- }
- }
复制代码 |
|