Java, Groovy on Grails, PHP, Kohana

Блог о программировании на Java, Groovy on Grails, PHP, kohana

Java Compare Strings Depends On Locale

Для правильной сортировки строк на украинском языке или любом другом, необходимо явно указывать локаль Locale. Для решения данной проблемы используем класс пакета java.text – Collator.

ArrayList<String> countries = new ArrayList<String>();
countries.add("Єгипет");
countries.add("Туреччина");		
countries.add("Ісландія");		
countries.add("Аргентина");
		

System.out.println("Before sort:");
		
System.out.println(countries);
		

System.out.println("After regular sort:");
		
Collections.sort(countries);
		
System.out.println(countries);
		

Locale ukrainian = new Locale("uk", "UA");
		
Collator ukrainianCollator = Collator.getInstance(ukrainian);

Collections.sort(countries, ukrainianCollator);


System.out.println("After locale sort:");

System.out.println(countries);

Results

Before sort:
[Єгипет, Туреччина, Ісландія, Аргентина]
After regular sort:
[Єгипет, Ісландія, Аргентина, Туреччина]
After locale sort:
[Аргентина, Єгипет, Ісландія, Туреччина]
  • Recent Posts