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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yuanjun52306 中级黑马   /  2015-12-7 12:49  /  799 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 yuanjun52306 于 2015-12-7 12:51 编辑
  1. package com.heima;

  2. import java.util.Arrays;
  3. /**
  4. *
  5. * 需求:对一个字符串中的数值进行从小到大的排序
  6. *
  7. */

  8. public class Demo1 {

  9.         public static void main(String[] args){
  10.                 String s = "22 4 65 78 -25 0 -100 55";
  11.                 System.out.println(s);
  12.                 System.out.println(paiXu(s));
  13.         }
  14.         
  15.         public static String paiXu(String s){
  16.                 //1、字符串→字符串[]
  17.                 String[] str_arr = paiXu1(s);
  18.                 //2、字符串[]→整数[]
  19.                 int[] i_arr = paiXu2(str_arr);
  20.                 //3、整数[] 排序
  21.                 paiXu3(i_arr);
  22.                 //4、整数[]→字符串
  23.                 String str = paiXu4(i_arr);
  24.                 return str;
  25.         }
  26.         
  27.         public static String[] paiXu1(String s){
  28.                 String[] str_arr = s.split(" ");
  29.                 return str_arr;
  30.         }
  31.         
  32.         public static int[] paiXu2(String[] str_arr){
  33.                 int[] i_arr = new int[str_arr.length];
  34.                 for(int i = 0 ; i < str_arr.length ; i++){
  35.                         i_arr[i] = Integer.parseInt(str_arr[i]);
  36.                 }
  37.                 return i_arr;
  38.         }
  39.         
  40.         public static void paiXu3(int[] i_arr){
  41.                 Arrays.sort(i_arr);
  42.         }
  43.         
  44.         public static String paiXu4(int[] i_arr){
  45.                 StringBuilder sb = new StringBuilder();
  46.                 for(int i = 0 ; i < i_arr.length ; i++){
  47.                         if(i != i_arr.length-1){
  48.                                 sb.append(i_arr[i]+" ");
  49.                                 //从大到小:sb.append(i_arr[i_arr.length-1-i]+" ");
  50.                         }else{
  51.                                 sb.append(i_arr[i]);
  52.                                 //从大到小:sb.append(i_arr[i_arr.length-1-i]);
  53.                         }
  54.                 }
  55.                 return sb.toString();
  56.         }
  57. }
复制代码


刚学到这里,做个标记

3 个回复

倒序浏览
个人感觉, 可以先吧字符串 直接转为   数组, 之后使用数组工具类,进行排序,最后转为String  输出就好!
回复 使用道具 举报
迷茫不堪的年纪 发表于 2015-12-8 19:45
个人感觉, 可以先吧字符串 直接转为   数组, 之后使用数组工具类,进行排序,最后转为String  输出就好! ...

直接转为数组?求代码
回复 使用道具 举报
一看到需求,我惊了。。不过没关系了,问题就是被解决的。前3次后一次的转化,只为一个Arrays.sort。。赞一下最后的StingBuffer,sb就是为了这个生的。

我忽然想了另一种可以替代sb。Arrays.toString(int[] arr);然后 string.replaceAll();。

很高兴交流。。哈哈哈哈
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马