String str = "88,22,77,00,33,55,44,11,66,99";上面的要排成这样:String str = "99,00,88,11,77,22,66,33,55,44";就是:最大的,最小的,剩下里面最大的,剩下里面最小的,写出代码。

解决方案 »

  1.   

    先split分割
    在Array.sort()排序
    然后自己取头取尾组成字符串即可
      

  2.   

    我只能说一下算法  先对这个数组进行排序  按从小到大的顺序排好  然后把这个数组分成两半   第一个数组把小半部分从小到大   第二个数组从大到小  然后把这两个数组拼起来啊    这样两个数组给那个原始数组赋值  两个数组一个一个来  不久行了   虽然步骤有点复杂 但是时间复杂度还是很低的   如果是用快排  只有NlogN的时间
      

  3.   


    import java.util.Arrays;public class Sort {
    /**
     * 基本思路:先分割字符串,得到字符串数组;然后对该数组从小到大排序;
     * 定义两个变量,一个表示最小值的下标lower,另一个表示最大值的下标upper,每次先
     * 取upper对应的值,再取lower对应的值,然后lower++,upper--。直到lower大于等于upper。
     * @param args
     */
    public static void main(String[] args) {
    String str = "88,22,77,00,33,55,44,11,66,99";
    String[] temp = str.split(",");

    Arrays.sort(temp);

    int lower = 0;
    int upper = temp.length - 1;

    StringBuffer sb = new StringBuffer();
    while(lower < upper) {
    sb.append(temp[upper] + "," + temp[lower] + ",");
    upper--;
    lower++;
    }
    str = sb.substring(0, sb.length()-1);
    System.out.println(str);
    }
    }
      

  4.   


    public class A {
    /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    String[] ss={"1","3","5","7","2","4","6","8","9"};
    for(int i=0;i<ss.length;i++){

    for(int j=i+1;j<ss.length;j++){
    if(Integer.parseInt(ss[i])<Integer.parseInt(ss[j])){
    String temp="";
    temp=ss[j];
    ss[j]=ss[i];
    ss[i]=temp;
    }

    }
    i++;
    for(int j=i+1;j<ss.length;j++){
    if(Integer.parseInt(ss[j])<Integer.parseInt(ss[i])){
    String temp="";
    temp=ss[j];
    ss[j]=ss[i];
    ss[i]=temp;
    }

    }


    }
    for(int i=0;i<ss.length;i++){
    System.out.println("ss["+i+"]==="+ss[i]);
    }
    }}
    仅供参考
      

  5.   


    public class Test { public static void main(String[] args) {
    String str = "88,22,77,00,33,55,44,11,66,99";
    System.out.println(getNewStr(str));
    } public static String getNewStr(String str){
    String[] ss = str.split(",");
    int[] values = new int[ss.length];
    String result = "";
    for (int i = 0; i < values.length; i++) {
    values[i] = Integer.parseInt(ss[i]);
    }
    quickSort(values, 0, values.length - 1);
    int head = 0;
    int rear = values.length - 1;
    while(head < rear){
    result += values[rear--] + "," + values[head++] + ",";
    }
    return result.substring(0, result.lastIndexOf(","));
    }

    private static void quickSort(int[] arr, int head, int end) {
    if (head >= end) {
    return;
    }
    int index = head;
    for (int i = head; i < end; i++) {
    if (arr[i] <= arr[end]) {
    if (index != i) {
    arr[index] ^= arr[i];
    arr[i] ^= arr[index];
    arr[index] ^= arr[i];
    }
    index++;
    }
    }
    if (index != end) {
    arr[index] ^= arr[end];
    arr[end] ^= arr[index];
    arr[index] ^= arr[end];
    }
    quickSort(arr, head, index - 1);
    quickSort(arr, index + 1, end);
    }}
      

  6.   

    import java.util.Arrays;public class Main {    public static void main(String[] args) {
            /*分割,从小到大排序*/
            String str = "88,22,77,00,33,55,44,11,66,99";
            String[] s = str.split(",");
            Arrays.sort(s);        /*创建一个新字符串数列储存排序后的*/
            String[] ss = new String[s.length];
            /*在数组0,2,4……中插入从大到小的数*/
            for (int i = 0, j = ss.length - 1; i < ss.length; i += 2, j--) {
                ss[i] = s[j];
            }
            /*在数组1,3,5……中插入从小到大的数*/
            for (int i = 1, j = 0; i < ss.length; i += 2, j++) {
                ss[i] = s[j];
            }
            /*合并、输出*/
            String result = "";
            for (String n : ss) {
                result += (n + ",");
            }
            System.out.println(result);
        }
    }