Java如何将数字字符串按升序排序?

在以下示例中"2, 5, 9, 1, 10, 7, 4, 8",我们将按升序对包含以下数字的字符串进行排序,以便获得的结果"1, 2, 4, 5, 7, 8, 9, 10"。

package org.nhooo.example.util;

import java.util.Arrays;
import java.util.Collections;

public class SortStringNumber {
    public static void main(String[] args) {
        //我们有一些用逗号分隔的字符串。首先我们
        // 需要拆分它,以便我们可以获取每个数字。
        String data = "2, 5, 9, 1, 10, 7, 4, 8";
        String[] numbers = data.split(",");

        // 将字符串数字转换为Integer并将其放入
        // 整数数组。
        Integer[] intValues = new Integer[numbers.length];
        for (int i = 0; i < numbers.length; i++) {
            intValues[i] = Integer.parseInt(numbers[i].trim());
        }

        // 使用数字按升序对数字进行排序
        // Collections.sort()方法。
        Collections.sort(Arrays.asList(intValues));

        // 使用以下命令将排序后的数字转换回字符串
        //StringBuilder对象。打印排序的字符串号。
        StringBuilder builder = new StringBuilder();
        for (int i = 0; i < intValues.length; i++) {
            Integer intValue = intValues[i];
            builder.append(intValue);
            if (i < intValues.length - 1) {
                builder.append(", ");
            }
        }
        System.out.println("Before = " + data);
        System.out.println("After  = " + builder.toString());
    }
}

运行程序时,将获得以下输出:

Before = 2, 5, 9, 1, 10, 7, 4, 8
After  = 1, 2, 4, 5, 7, 8, 9, 10