Tüm mevcut dillerden seçilen sıralı Lehçe isimlerini yazdırmak istedim.Batı olmayan karakterlerle Dize Sıralama
import java.util.*;
public class Tmp
{
public static void main(String... args)
{
Locale.setDefault(new Locale("pl","PL"));
Locale[] locales = Locale.getAvailableLocales();
ArrayList<String> langs = new ArrayList<String>();
for(Locale loc: locales) {
String lng = loc.getDisplayLanguage();
if(!lng.trim().equals("") && ! langs.contains(lng)){
langs.add(lng);
}
}
Collections.sort(langs);
for(String str: langs){
System.out.println(str);
}
}
}
Ne yazık ki sıralama bölümü ile ilgili bir sorunum var. çıkışı: Maalesef Polonya ł
yılında
:
:
kataloński
koreański
litewski
macedoński
:
:
węgierski
włoski
łotewski
l
sonra gelen ve m
önce bu kadar çıktı olmalıdır:
:
:
kataloński
koreański
litewski
łotewski
macedoński
:
:
węgierski
włoski
Bunu başarmak nasıl? Evrensel olmayan dil bağımlı bir yöntem var mı (şimdi bunu görüntülemek ve başka bir dilde başka bir sıralama kuralları ile sıralamak istiyorum).
// sort according to default locale
Collections.sort(langs, Collator.getInstance());
varsayılan sıralama düzeni dizesinde Unicode codepoints tanımlanır ve bu herhangi bir dilde doğru alfabetik emir değil:
Bu çözümü kontrol ettiniz mi? http://stackoverflow.com/questions/12889760/sort-list-of-strings-with-localization – Abdul