黑马程序员技术交流社区

标题: String类:将整数字符串进行排序,显示在控制台 [打印本页]

作者: 小穿钉    时间: 2015-11-15 22:07
标题: String类:将整数字符串进行排序,显示在控制台
本帖最后由 小穿钉 于 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;
        }
       

}



作者: gih146    时间: 2015-11-15 22:20
参考一下
作者: sshh11    时间: 2015-11-15 22:30
学习了  谢谢
作者: 小笨笨天    时间: 2015-11-15 22:39
路人学习飘过
作者: 小穿钉    时间: 2015-11-16 00:15

一起交流~~~
作者: 醉叶惜秋    时间: 2015-11-16 00:25
进来学习的
作者: z13561291    时间: 2015-11-16 15:12
保存下  有时间就研究下
作者: zyh1578814923    时间: 2015-11-16 22:12

进来学习的
作者: 小穿钉    时间: 2015-11-17 08:16

加油加油~
作者: 孙志明    时间: 2015-11-17 09:33
学习了  加油加油~
作者: feng0606    时间: 2015-11-17 17:24
有更简单的方法啊,这个写的太复杂了,先转成字符数组,直接使用Arrays工具类排序加上StringBuilder差不多只需要6 7行代码就OK了.




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