黑马程序员技术交流社区

标题: 将String型对象中数排序的算法,与大家分享下!!! [打印本页]

作者: pifuhanshu    时间: 2014-3-19 23:05
标题: 将String型对象中数排序的算法,与大家分享下!!!
  1. import java.util.Arrays;

  2. /**
  3. * 对一个字符串从大到小排列
  4. *   "12,3,23,41,27,36,7,18,39,4"
  5. * @author admin
  6. *思路:
  7. *  1.排序算法,但是只会数组排序
  8. *  2.将String型的字符串转换为int型的数组
  9. *  3.对int型的数组进行排序
  10. *  4.将排序后的数组变为String行的字符串
  11. */
  12. public class WrapperTest {

  13. public static void main(String[] args) {
  14.    String  str="12,3,23,41,27,36,7,18,39,4";
  15.       System.out.println(str);
  16.    str=sortStringNum(str);
  17.       System.out.println(str);
  18. }

  19. public static String sortStringNum(String str) {
  20.    //1.将字符串变换为字符串数组
  21.   String[]  strArray=stringToArray(str);
  22.       //2.将字符串数组变为int型的数组
  23.   int[]  toarray=toIntArray(strArray);
  24.      //3.对int型的数组进行排序
  25.   Arrays.sort(toarray);
  26.      //4.将排序后的数组转换为String型的字符串
  27.   String  st=arrToString(toarray);
  28.   return st;
  29. }
  30. //将排序后的数组转换为String型的字符串
  31. public static String arrToString(int[] toarray) {
  32. //  定义StringBuilder型缓冲区用于接收String对象
  33.   StringBuilder sb=new  StringBuilder();
  34. //  依次向StringBuilder型缓冲区中依次添加String型对象
  35.   for (int i = 0; i < toarray.length; i++) {
  36.    if(i!=toarray.length-1)
  37.     sb.append(toarray[i]+" ");
  38.    else
  39.     sb.append(toarray[i]);
  40.    
  41.   }
  42.   return sb.toString();
  43. }
  44. //将字符串变换为字符串数组
  45. public static int[] toIntArray(String[] strArray) {
  46. // 定义数使数组的长度等于字符串数组的长度
  47.   int[]  arr=new  int[strArray.length];
  48. //  遍历字符串数组并将字符串数组的元素转换为整形常量并存储在相对应整形数组中
  49.   for (int i = 0; i < arr.length; i++) {
  50.    arr[i]=Integer.parseInt(strArray[i]);
  51.   }
  52.   return arr;
  53. }
  54. //将String型的对象拆分成String型数组
  55. private static String[] stringToArray(String str) {
  56.   String[] str1=str.split(",");
  57.   return   str1;
  58. }

  59. }
复制代码







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