如何在java中对数组进行排序并转换为字符串

时间:2011-07-31 05:45:39

标签: java

public class Sort {

/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
    int num[] = { -1, 11, 3, 34, 5, 99, 10 };
    int length = num.length;
    int temp = 0;
    int jj;
    String printinstring ="";
    for (int i = 0; i < length; i++) {
        for (int j =1; j < length; j++) {
            if (num[j-1] > num[j]) {
                temp = num[j-1];
                num[j-1]=num[j];
                num[j]=temp;
            }

        }




    }
    for (int i = 0; i < length; i++) {
        System.out.println(num[i]);
        printinstring=printinstring+Integer.toString(num[i]);

    }

    System.out.println(printinstring);
}
}

输出是

-1
3
5
10
11
34
99
-13510113499

如果我们改变&lt; 然后输出是99 ---

2 个答案:

答案 0 :(得分:1)

已经有一个预定义的库函数sort,无需编写一个。

答案 1 :(得分:0)

我认为你的问题在这里:

for (int i = 0; i < length; i++) {
    System.out.println(num[i]);
    printinstring=printinstring+Integer.toString(num[i]);

}

应该是:

for (int i = 0; i < length; i++) {
    if (i > 0) {
        printinstring = printinstring + " ";
    }
    printinstring = printinstring + Integer.toString(num[i]);
}

或更简洁

for (int i = 0; i < length; i++) {
    if (i > 0) {
        printinstring += " ";
    }
    printinstring += num[i];
}

甚至

for (int i = 0; i < length; i++) {
    printinstring += ((i > 0) ? " " : "") + num[i];
}

但@Mahesh是对的。没有必要自己实现排序。使用现有的库方法。