Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Sắp xếp chuỗi chứa số nguyên trong Java

Chuỗi số phân tách bằng khoảng trắng → tách thành mảng → parse sang int[] → sort.

Các bước

  1. Dùng split("\\s+") tách chuỗi (hỗ trợ nhiều khoảng trắng)
  2. Chuyển từng phần tử sang int bằng Integer.parseInt()
  3. Sắp xếp mảng int bằng Arrays.sort()

Ví dụ hoàn chỉnh


import java.util.Arrays;

public class SortNumberString {
    public static void main(String[] args) {
        String input = "22 58 69 63 69 55 669 24 4285 654 1 296 564 2 582 255 562";
        System.out.println("Gốc: " + input);
        
        // Tách chuỗi (\\s+ khớp 1 hoặc nhiều whitespace)
        String[] strArray = input.split("\\s+");
        
        // Parse sang int[]
        int[] intArray = new int[strArray.length];
        for (int i = 0; i < strArray.length; i++) {
            intArray[i] = Integer.parseInt(strArray[i]);
        }
        
        // Sắp xếp
        Arrays.sort(intArray);
        System.out.println("Đã sort: " + Arrays.toString(intArray));
    }
}

Kết quả


Gốc: 22 58 69 63 69 55 669 24 4285 654 1 296 564 2 582 255 562
Đã sort: [1, 2, 22, 24, 55, 58, 63, 69, 69, 255, 296, 562, 564, 582, 654, 669, 4285]

Java 8+ Stream (ngắn gọn hơn)


int[] sorted = Arrays.stream(input.split("\\s+"))
                     .mapToInt(Integer::parseInt)
                     .sorted()
                     .toArray();
System.out.println(Arrays.toString(sorted));

⚠️ Xử lý lỗi

Nếu chuỗi có thể chứa giá trị không phải số, bọc parseInt trong try-catch hoặc dùng Optional để lọc:


int[] sorted = Arrays.stream(input.split("\\s+"))
    .filter(s -> s.matches("-?\\d+")) // chỉ số nguyên
    .mapToInt(Integer::parseInt)
    .sorted()
    .toArray();