मेरे पास यह कोड है। यह फ्रेंच और रूसी में सही ढंग से ठीक है। मैंने 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
भले ही सेट में केवल एक भाषा हो, फिर भी आपको हर बार सॉर्ट करना चाहते समय 'कोलेटर' के लिए सही 'लोकेल' चुनना होगा। –