A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. /**
  2. * 题目:对一个字符串中的数值进行从小到大的排序。
  3. * 思路:先要将字符串转换为int型数组,定义一个正则表达式进行切割,这里用冒泡排序(Arrays.sort()方法排序更简单),之后再转回为字符串。
  4. *@author
  5. */
  6. public class Day13Test4 {
  7.        
  8.         private static final String REG_SPACE = " +";
  9.         public static void main(String[] args) {
  10.                
  11.                 String str = "32  53  25  65 -3   5";
  12.                 //定义一个实现排序的方法。
  13.                 String str1 = sortStingArray(str);
  14.                 System.out.println(str1);
  15.         }
  16.         public static String sortStingArray(String str) {
  17.                 //定义一个将字符串转为int型数组的方法。
  18.                 int[] num_arr = stringToIntArray(str);
  19.                
  20.                 //定义一个排序方法。
  21.                 int[] num_arr1 = sortIntArray(num_arr);
  22.                
  23.                 //定义一个将int型数组转为字符串的方法。
  24.                 String str1 = intArrayToString(num_arr1);
  25.                 return str1;
  26.         }
  27.         public static String intArrayToString(int[] num_arr1) {
  28.                 //创建StringBuilder转换字符串。
  29.                 StringBuilder sb = new StringBuilder();
  30.                 for(int i = 0; i<num_arr1.length ;i++){
  31.                         if(i!=num_arr1.length-1)
  32.                                 sb.append(num_arr1[i]+" ");
  33.                         else
  34.                                 sb.append(num_arr1[i]);
  35.                 }
  36.                
  37.                 return sb.toString();
  38.         }
  39.         public static int[] sortIntArray(int[] num_arr) {
  40.                 //冒泡排序。
  41.                 for (int x = 0;x<num_arr.length;x++){
  42.                         for (int y = 0;y<num_arr.length-x-1;y++){
  43.                                 if (num_arr[y]>num_arr[y+1])
  44.                                         swap(num_arr,y,y+1);
  45.                         }
  46.                 }
  47.                 return num_arr;
  48.         }
  49.         //换位方法。
  50.         private static void swap(int[] num_arr, int y, int i) {
  51.                 int temp = num_arr[y];
  52.                 num_arr[y] = num_arr[y+1];
  53.                 num_arr[y+1] = temp;
  54.         }
  55.         //切割方法。
  56.         public static int[] stringToIntArray(String str) {
  57.                  String[] arr = str.split(REG_SPACE);
  58.                  int[] num_arr = new int[arr.length];
  59.                  for (int i = 0; i<arr.length;i++){
  60.                          num_arr[i] = Integer.parseInt(arr[i]);
  61.                  }
  62.                  return num_arr;
  63.         }
  64. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马