Cách 1: Dùng toCharArray() + Arrays.sort() (Đơn giản, hiệu quả)
- Chuyển String → char[] bằng
toCharArray().
- Sắp xếp mảng char bằng
Arrays.sort().
- 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.