zoukankan      html  css  js  c++  java
  • 对一个字符串中的数值进行从小到大的排序

     1 /*
     2  * 对一个字符串中的数值进行从小到大的排序。
     3  * 
     4  * "20 78 9 -7 88 36 29"
     5  * 
     6  * 思路:
     7  * 1,排序,string要转换成int。
     8  * 2,如何获取到这个字符串中的这些需要排序的数值?
     9  * 发现这个字符串中其实都是空格来对数值进行分隔的。
    10  * 所以就想到用字符串对象的切割方法将大串变成多个小串。
    11  * 3,数值最终变成小字符串,怎么变成一个int数呢?
    12  * 字符串-->基本类型 可以使用包装类。
    13  * 
    14  * 大串变小串--》String变int--》int 排序--》int变String
    15  */
    16 
    17 public class WrapperTest {
    18 
    19     private static final String SPACE_SEPARATOR = " ";
    20 
    21     public static void main(String[] args) {
    22         
    23         String numStr = "20 78 9 -7 88 36 29";
    24         
    25         System.out.println(numStr);
    26         numStr = sortStringNumber(numStr);
    27         System.out.println(numStr);
    28         
    29     }
    30     
    31     public static String sortStringNumber(String numStr) {
    32         
    33         //1,将字符串变成字符串数组。
    34         String[] str_arr = stringToArray(numStr);
    35         
    36         //2,将字符串数组变成int数组。
    37         
    38         int[] num_arr = toIntArray(str_arr);
    39         
    40         //3,对int数组排序。
    41         mySortArray(num_arr);
    42         
    43         //4,将排序后的int数组变成字符串。
    44         
    45         String temp = arrayToString(num_arr);
    46         
    47         return temp;
    48     }
    49     //将排序后的int数组变成字符串
    50     public static String arrayToString(int[] num_arr) {
    51         
    52         StringBuilder sb = new StringBuilder();
    53         for(int x = 0; x<num_arr.length; x++){
    54             if(x!=num_arr.length-1)
    55                 sb.append(num_arr[x]+SPACE_SEPARATOR);
    56             else
    57                 sb.append(num_arr[x]);
    58         }
    59         
    60         return sb.toString();
    61     }
    62     //对int数组排序
    63     public static void mySortArray(int[] num_arr) {
    64         
    65         Arrays.sort(num_arr);
    66     }
    67     //将字符串数组变成int数组,使用parseInt()
    68     public static int[] toIntArray(String[] str_arr) {
    69         
    70         int[] arr = new int[str_arr.length];
    71         
    72         for (int i = 0; i < arr.length; i++) {
    73             arr[i] = Integer.parseInt(str_arr[i]);
    74         }
    75         
    76         return arr;
    77     }
    78 
    79 
    80     //将字符串变成字符串数组。
    81     public static String[] stringToArray(String numStr) {
    82         String[] str_arr = numStr.split(SPACE_SEPARATOR);
    83         
    84         
    85         return str_arr;
    86     }
    87 
    88 }
  • 相关阅读:
    【解决】Ubuntu命令行弹出光驱的方法
    【8086汇编基础】02寻址方式和MOV指令
    【8086汇编基础】03变量、数组和常量的处理
    Ubuntu12.10 内核源码外编译 linux模块编译驱动模块的基本方法
    【8086汇编基础】05常用函数库文件emu8086.inc
    Ubuntu12.10 使用DNW传数据 进行ARM开发板烧写
    【8086汇编基础】04中断
    【8086汇编基础】01汇编语言简要介绍
    飞凌OK6410开发板移植uboot官方最新版uboot2012.10.tar.bz2
    【8086汇编基础】00基础知识各种进制的数据
  • 原文地址:https://www.cnblogs.com/fifiyong/p/6436051.html
Copyright © 2011-2022 走看看