이 코드가 있습니다. 그것은 프랑스어와 러시아어로 정확하게 정렬됩니다. Locale.US를 사용했는데 제대로 된 것 같습니다. 이 솔루션이 모든 언어로 가능합니까? 다른 언어에서도 작동합니까? 예 : 중국어, 한국어, 일본어 ... 그렇지 않다면 더 나은 해결책은 무엇입니까?모든 언어로 문자열을 정렬 할 수있는 방법이 있습니까?
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);
}
}
}
업데이트 : 미안 해요, 난 순서로 모든 언어를 포함해야합니다이 설정이 필요하지 않습니다. 나는이 세트가 하나의 언어를 포함하고 모든 언어로 정확하게 정렬된다는 것을 의미합니다.
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);
}
}
}
죄. – Flexo
집합에 하나의 언어 만 포함되어 있어도 정렬 할 때마다 'Collator'에 대해 올바른 'Locale'을 선택해야합니다. –