本帖最后由 小穿钉 于 2015-11-15 22:09 编辑
package cn.stringbuilderdemo;
import java.lang.reflect.Array; import java.util.Arrays;
/** * 需求:将整数的字符串进行排序输出,显示在控制台 * 1.将字符串转换成String数组, * 2.将String数组转变成int数组 * 3.对int数组进行排序 * 4.将int数组转换成字符串, * 5.打印到控制台 * @author Administrator * */ public class StringSortDemo { private static final String DOU_HAO=","; public static void main(String[] args) { //声明一个字符串 String str="1,78,67,24,654,-9"; System.out.println(str); System.out.println("------------------------------------"); str=sortStringNum(str); System.out.println(str); } /* * 方法管理器 */ public static String sortStringNum(String str){ //将字符串变成数组 String[] str_arr=stringToStringArray(str); //将字符串数组转变成int数组 int[] num_arr=stringArrayToIntArray(str_arr); //对int数组进行排序 intArrayToSort(num_arr); //将int数组转变成字符串 String ss=intArrayToString( num_arr); return ss; } /* * 将int数组转变成字符换 */ public static String intArrayToString(int[] num_arr){ //将int数组转变成字符串,需要一个容器存储字符串,用单线程效率高的StringBuilder StringBuilder s=new StringBuilder(); //对int数组进行遍历,然后将数据存入StringBuilder for(int i=0;i<num_arr.length;i++){ //对数组进行判断,如果不是最后一个元素,元素后加逗号,如果是最后一个元素,只输出元素就可以了。 if(i!=num_arr.length-1){ s.append(num_arr+DOU_HAO); }else{ s.append(num_arr); } } return s.toString(); } /* * 对int数组进行排序 */ public static void intArrayToSort(int[] num_arr){ //将int数组进行排序 Arrays.sort(num_arr); } /* * 将字符串数组转变成int数组 */ public static int[] stringArrayToIntArray(String[] str_arr){ //声明一个int数组,长度与String数组相同 int[] num_arr=new int[str_arr.length]; //遍历String数组 for(int i=0;i<str_arr.length;i++){ //将字符串数据转变成int类型,并赋值给int数组对应角标的元素 num_arr=Integer.parseInt(str_arr); } //返回int数组 return num_arr; } /* * 将字符串转变成字符串数组 */ public static String[] stringToStringArray(String str){ //创建String数组,用来接收分割后的字符串 String[] str_arr=str.split(DOU_HAO); //返回一个String数组 return str_arr; }
}
|