现在有一个字符串 String str="9,10,5,12,0,12,3,8";要求对字符串中的数组排序并输出,我做出来了,是先转换成int数组,再冒泡排序,感觉很复杂,有没有简单点的方法,求教。

解决方案 »

  1.   

    简洁点么用Arrays.sort直接把你的Int数组排序下就好了
      

  2.   

    yes  先将String[]转换成 int[]
    然后利用Arrays.sort(),够方便了吧
      

  3.   

    public static void main(String[] args) { 
    String str="9,10,5,12,0,12,3,8";
    String[] temp = str.split(",");
    int[] arr = new int[temp.length];
    for (int i = 0; i < arr.length; i++) {
    arr[i] = Integer.valueOf(temp[i]);
    }
    Arrays.sort(arr);
    System.out.println(Arrays.toString(arr));//输出结果:[0, 3, 5, 8, 9, 10, 12, 12]
    }
     
     
      

  4.   

    public static void main(String[] args) {
    String str = "9,10,5,12,0,12,3,8";
    String[] temp = str.split(",");
    int[] arr = new int[temp.length];
    for (int i = 0; i < arr.length; i++) {
    arr[i] = Integer.valueOf(temp[i]);
    }
    Arrays.sort(arr);
    System.out.println(Arrays.toString(arr));
    }
      

  5.   

    package csdn;import java.util.Arrays;
    import java.util.Comparator;public class Test {
    // 现在有一个字符串 String str="9,10,5,12,0,12,3,8";要求对字符串中的数组排序并输出,
    // 我做出来了,是先转换成int数组,再冒泡排序,感觉很复杂,有没有简单点的方法,求教。  //除了作者上述方法外,实现一个比较器代入即可.
    public static class Compare implements Comparator<String> {
    public int compare(String arg0, String arg1) {
    if(arg0==null||arg1==null)
    {
    System.out.println("字符串为空");
    return -1;

    }
    int length1=arg0.length();
    int length2=arg1.length();
      if(length1<length2)
      {
      return -1;
      
      }
      else if(length1>length2)
      {
      return 1;
      
      }
      else{
      int i;
      for(i=0;i<length1;i++)
      {
      if(arg0.charAt(i)>arg1.charAt(i))
      {
      return 1;
      
      }
      else if(arg0.charAt(i)<arg1.charAt(i))
      {
      return -1;
      }
      else continue;
      
      }
     return 0;
      
      }
    } } public static void main(String[] args) {
    String str="9,10,5,12,0,12,3,8";
    String[] s=str.split(",");
    Arrays.sort(s,new Compare());
    for(String k:s)
    {
    System.out.print(k+" ");

    } }}