首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

有个字符串,须对其中的值排序的小疑点

2013-12-04 
有个字符串,须对其中的值排序的小问题,在线等java中,有个字符串,String s55,3,1,4现须,对此字符串中的

有个字符串,须对其中的值排序的小问题,在线等
java中,
有个字符串,String s5="5,3,1,4";
现须,对此字符串中的值排序,要按升序排,并输出 1,3,4,5
再用降序排,并输出 5,4,3,1
这怎么实现呢,在线等,thanks,
[解决办法]

String[] s = { "5", "3", "1", "4" };
Arrays.sort(s);


直接输出是升序,改一下输出方式,变成降序
[解决办法]
随便写了个,主要是用了一些JDK自带的函数

public static void main(String[] args) {
String s1="5,3,1,4";
String[] s2 = s1.split(",");
Arrays.sort(s2);
String s3 = Arrays.deepToString(s2).replaceAll("\\[", "").replaceAll("\\]", "").replaceAll(" ", "");
System.out.println(s3);
StringBuilder sb = new StringBuilder(s3);
sb.reverse();
System.out.println(sb.toString());
}


打印:
1,3,4,5
5,4,3,1

[解决办法]

        String s5 = "5,3,1,4";
        String[] sArray = s5.split(",");
        int[] iArray = new int[sArray.length];
        for (int i = 0; i < sArray.length; i++) {
            iArray[i] = Integer.parseInt(sArray[i]);
        }
        Arrays.sort(iArray);
        for (int i = 0; i < iArray.length; i++) {
            System.out.print(iArray[i] + " ");
        }
        System.out.println();
        for (int i = iArray.length - 1; i > -1; i--) {
            System.out.print(iArray[i] + " ");
        }
        System.out.println();

[解决办法]
package main.action;

import java.util.Arrays;

public class test {
   public static void main(String[] args) throws Exception {
      String number = "3,1,4,5,2";
      numSort(number, "asc");
   }

   public static void numSort(String numbers, String sort) {
      String[] num = numbers.split(",");
      StringBuffer nums = new StringBuffer();
      Arrays.sort(num);
      if (sort.equals("asc")) {
         for (int i = 0; i < num.length; i++) {
            nums.append(num[i]).append(",");
         }
         System.out.println(nums.toString().substring(0,nums.length()-1));
      }else if(sort.equals("desc")){
         for( int i=num.length-1;i>=0;i--){
            nums.append(num[i]).append(",");
         }
         System.out.println(nums.toString().substring(0,nums.length()-1));
      }
   }
}


numSort第二个参数分别是asc和desc
[解决办法]

import java.util.Arrays;

public class Test001 {

public static void main(String[] args) throws IllegalAccessException {
String s5 = "5,3,1,4";
System.out.println(sort(s5, ","));
System.out.println(sortDesc(s5, ","));
}

static String sort(String sourceStr, String splitStr) {


String[] arr = sourceStr.split(splitStr);
Arrays.sort(arr);
StringBuffer sb = new StringBuffer();
for (int i = 0; i < arr.length - 1; ++i) {
sb.append(arr[i]).append(splitStr);
}
sb.append(arr[arr.length - 1]);
return sb.toString();
}

static String sortDesc(String sourceStr, String splitStr) {
String[] arr = sourceStr.split(splitStr);
Arrays.sort(arr);
StringBuffer sb = new StringBuffer();
for (int i = arr.length - 1; i > 0; --i) {
sb.append(arr[i]).append(splitStr);
}
sb.append(arr[0]);
return sb.toString();
}
}

热点排行