题目要求:String s="-1 2 5 78 129 -65 -23";将字符串进行升序排序后输出。
方法一:使用数组进行排序
思路:
1、获取字符串中的数值;
2、将数组存入整型数组中;
3、对int数组进行排序;
4、将int数组变成字符串;
步骤:
1、切割;
2、对字符串数组中元素进行转化存入;
3、对int数组进行sort;
4、把int数组变成字符串;
源代码如下:
1 /** 2 *@date:2013年9月25日 3 *@author:lkx 4 / 5 /* 6 练习:String s=“-1 28 72 104 -98 12” 7 题目:将字符串进行升序排序后输出生成新的字符串 8 思路:1、获取字符串中的数值; 9 2、将数组存入整型数组中; 10 3、对int数组进行排序; 11 4、将int数组变成字符串; 12 步骤: 13 1、切割; 14 2、对字符串数组中元素进行转化存入; 15 3、对int数组进行sort; 16 4、把int数组变成字符串; 17 */ 18 19 import java.util.*; 20 class Face 21 { 22 /* 23 将字符串通过空格切割成字符数组 24 */ 25 public static String[] getStrArray(String str) 26 { 27 return str.split(" "); 28 } 29 /* 30 将字符数组转化为整型数组 31 */ 32 public static int[] toIntArray(String[] str) 33 { 34 int [] intArray=new int[str.length]; 35 for(int i=0;i<str.length;i++) 36 { 37 intArray[i]=Integer.parseInt(str[i]); 38 } 39 return intArray; 40 } 41 /* 42 将排序后的整型数组转化为字符串 43 */ 44 public static String toStingArray(int[] num)//整型数组转化成字符串 45 { 46 StringBuilder sb=new StringBuilder(); 47 for(int i=0;i<num.length;i++) 48 { 49 if(i!=num.length-1) 50 sb.append(num[i]+","); 51 else 52 sb.append(num[i]); 53 } 54 return sb.toString(); 55 } 56 57 public static void main(String[] args) 58 { 59 String s="-1 2 5 78 129 -65 -23"; 60 String [] str=getStrArray(s); 61 int[] num=toIntArray(str); 62 Arrays.sort(num); 63 String y=toStingArray(num); 64 System.out.println(y); 65 } 66 }
方法二:使用集合框架TreeSet
原解法虽然思路清晰,按部就班,便于理解,但是代码略长,一个简单的功能用了将近70行代码,
为什么我们不换一种思路,用集合框架强大的容器功能实现这一程序呢。
源代码如下:
1 /** 2 *@Date:2013年9月28日 3 *@author:lkx 4 */ 5 /*练习:String s=“-1 28 72 104 -98 12” 6 题目:将字符串进行升序排序后输出生成新的字符串 7 */ 8 import java.util.*; 9 class StringSort 10 { 11 //将字符串通过空格切割成字符数组 12 public static String[] getStrArray(String str){ 13 return str.split(" "); 14 } 15 //用集合框架TreeSet容器存放数据 16 public static void TreeSetSave(String []num){ 17 TreeSet ts=new TreeSet(); 18 for (int i=0;i<num.length;i++ ){ 19 ts.add(Integer.parseInt(num[i])); 20 /*TreeSet类底层数据结构为红黑树,可对实现了Comparable接口 21 的元素(本例中为Integer)进行自然排序*/ 22 } 23 for(Iterator it=ts.iterator();it.hasNext();)//使用迭代器输出 24 System.out.println(it.next()); 25 } 26 public static void main(String[] args) { 27 String s="-1 2 5 78 129 -65 -23"; 28 String []num=getStrArray(s); 29 TreeSetSave(num); 30 } 31 }