黑马程序员技术交流社区

标题: 求给一个数字的字符串排序 [打印本页]

作者: 珠宝    时间: 2015-5-18 03:16
标题: 求给一个数字的字符串排序
给定一个字符串“15 21 38 46 11 21”求是输出一个字符串“11 15 21 21 38 46 ”怎么求,要求写思路和代码
作者: 王建伟    时间: 2015-5-18 08:02
思路:1、将字符串中的数字切割出来并加入字符串数组。
         2、遍历字符串数组,并加入到list中
         3、用Collections.sort();对list进行排序。
刚刚敲了一下代码,贴出来楼主看看吧。
  1. import java.util.ArrayList;
  2. import java.util.Collections;
  3. import java.util.List;


  4. public class SortNum {

  5.         /**
  6.          * @param args
  7.          */
  8.         public static void main(String[] args) {
  9.                 String s="15 21 38 46 11 21";
  10.                 //将字符串中的数字切割出来并加入字符串数组。
  11.                 String []num =s.split(" ");
  12.                 mySort(num);
  13.         }
  14.         //定义排序函数
  15.         public static void mySort(String [] num){
  16.                 List<String> list = new ArrayList<String>();
  17.                 //遍历字符串数组,并加入到list中
  18.                 for (String string : num) {
  19.                         list.add(string);
  20.                 }
  21.                 //用Collections.sort();对list进行排序。
  22.                 Collections.sort(list);
  23.                 for (String string : list) {
  24.                         System.out.println(string);
  25.                 }
  26.         }
  27. }
复制代码

作者: 王建伟    时间: 2015-5-18 08:19
不好意思,忘记要输出的是字符串了。
只需要在排序完遍历的时候加进StringBuffer中就行了。下面是代码。
  1. import java.util.ArrayList;
  2. import java.util.Collections;
  3. import java.util.List;


  4. public class SortNum {

  5.         /**
  6.          * @param args
  7.          */
  8.         public static void main(String[] args) {
  9.                 String s="15 21 38 46 11 21";
  10.                 //将字符串中的数字切割出来并加入字符串数组。
  11.                 String []num =s.split(" ");
  12.                 mySort(num);
  13.         }
  14.         //定义排序函数
  15.         public static void mySort(String [] num){
  16.                 StringBuffer sbf =new StringBuffer();
  17.                 List<String> list = new ArrayList<String>();
  18.                 //遍历字符串数组,并加入到list中
  19.                 for (String string : num) {
  20.                         list.add(string);
  21.                 }
  22.                 //用Collections.sort();对list进行排序。
  23.                 Collections.sort(list);
  24.                 for (String string : list) {
  25.                         sbf.append(string).append(" ");
  26.                 }
  27.                 System.out.println(sbf.toString());
  28.         }
  29. }
复制代码

作者: 想要那片海    时间: 2015-5-18 08:21
sort 是按照字符串的默认比较顺序进行排序,还可以根据自定义的比较器进行排序,在参数列表中传入集合和比较器对象




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2