Tôi có mã này. Nó sắp xếp chính xác bằng tiếng Pháp và tiếng Nga. Tôi đã sử dụng Locale.US và nó có vẻ đúng. Giải pháp này có phù hợp với tất cả các ngôn ngữ không? Nó có hoạt động với các ngôn ngữ khác không? Ví dụ: Trung Quốc, Hàn Quốc, Nhật Bản ... Nếu không, giải pháp tốt hơn là gì?Có cách nào để sắp xếp chuỗi bằng tất cả các ngôn ngữ không?
public class CollationTest {
public static void main(final String[] args) {
final Collator collator = Collator.getInstance(Locale.US);
final SortedSet<String> set = new TreeSet<String>(collator);
set.add("abîmer");
set.add("abîmé");
set.add("aberrer");
set.add("abhorrer");
set.add("aberrance");
set.add("abécédaire");
set.add("abducteur");
set.add("abdomen");
set.add("государственно-монополистический");
set.add("гостить");
set.add("гостевой");
set.add("гостеприимный");
set.add("госпожа");
set.add("госплан");
set.add("господи");
set.add("господа");
for(final String s : set) {
System.out.println(s);
}
}
}
Cập nhật: Xin lỗi, tôi không yêu cầu thiết lập này phải có đầy đủ ngôn ngữ theo thứ tự. Ý tôi là tập hợp này chứa một ngôn ngữ và sắp xếp chính xác ở mọi ngôn ngữ.
public class CollationTest {
public static void main(final String[] args) {
final Collator collator = Collator.getInstance(Locale.US);
final SortedSet<String> set = new TreeSet<String>(collator);
// Sorting in French.
set.clear();
set.add("abîmer");
set.add("abîmé");
set.add("aberrer");
set.add("abhorrer");
set.add("aberrance");
set.add("abécédaire");
set.add("abducteur");
set.add("abdomen");
for(final String s : set) {
System.out.println(s);
}
// Sorting in Russian.
set.clear();
set.add("государственно-монополистический");
set.add("гостить");
set.add("гостевой");
set.add("гостеприимный");
set.add("госпожа");
set.add("госплан");
set.add("господи");
set.add("господа");
for(final String s : set) {
System.out.println(s);
}
}
}
Tôi không nghĩ rằng bạn có ý nghĩa có thể xác định một trật tự các từ liên kết ngôn ngữ. – Flexo
Ngay cả khi tập hợp chỉ chứa một ngôn ngữ, bạn vẫn sẽ cần phải chọn đúng 'Locale' cho' Collator' mỗi lần bạn muốn sắp xếp. –