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

Cách sắp xếp chuỗi (String) theo thứ tự alphabet trong Java

Cách 1: Dùng toCharArray() + Arrays.sort() (Đơn giản, hiệu quả)

  1. Chuyển String → char[] bằng toCharArray().
  2. Sắp xếp mảng char bằng Arrays.sort().
  3. Tạo String mới từ mảng đã sort.
import java.util.Arrays;
import java.util.Scanner;

public class SortString {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Nhập chuỗi: ");
        String str = sc.nextLine();
        
        char[] charArray = str.toCharArray();
        Arrays.sort(charArray); // Sắp xếp theo Unicode (A-Z, a-z, 0-9...)
        
        System.out.println("Kết quả: " + new String(charArray));
    }
}
Nhập chuỗi: Tutorialspoint
Kết quả: Taiilnooprsttu

Cách 2: Sắp xếp thủ công (Bubble Sort) - Hiểu bản chất

public class SortStringManual {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Nhập chuỗi: ");
        String str = sc.nextLine();
        
        char[] charArray = str.toCharArray();
        int size = charArray.length;
        
        for (int i = 0; i < size; i++) {
            for (int j = i + 1; j < size; j++) {
                if (charArray[i] > charArray[j]) {
                    char temp = charArray[i];
                    charArray[i] = charArray[j];
                    charArray[j] = temp;
                }
            }
        }
        System.out.println("Kết quả: " + Arrays.toString(charArray));
    }
}

Lưu ý quan trọng

  • Arrays.sort() sắp xếp theo giá trị Unicode: Số (0-9) → Chữ hoa (A-Z) → Chữ thường (a-z).
  • Ví dụ: "aB1" → "1Ba".
  • Nếu muốn case-insensitive: chuyển tất cả về lower/upper trước khi sort, hoặc dùng custom Comparator (phức tạp hơn với char[]).
  • String trong Java immutable → phải tạo String mới từ char[] đã sort.