Pokud řetězce, které se mají porovnávat, obsahují doplňkové znaky Unicode (lze použít
pouze na normalizovaných řetězcích):
Použijte ICU 2.6.1
-
com.ibm.icu.text.UTF16.StringComparator
(Object,
Object)
-
com.ibm.icu.text.UTF16.StringComparator
(String,
String)
public static void main(String[] args){
String str = "\uFF10";
String str2 = "\uD800\uDC00";
UTF16.StringComparator compare = new UTF16.StringComparator(true, false, UTF16.StringComparator.FOLD_CASE_DEFAULT);
int result = compare.compare(str, str2);
System.out.println("UTF16.StringComparator: Výsledek
= " + result);
str = "\ud801\udc00";
str2 = "\ud801\udc28";
UTF16.StringComparator compare2 = new UTF16.StringComparator(true, true, UTF16.StringComparator.FOLD_CASE_DEFAULT);
result = compare2.compare(str, str2);
System.out.println("UTF16.StringComparator:
Výsledek (při ignorování velikosti písmen) = " + result);
}
|
|
Je-li porovnání závislé na národním prostředí nebo pokud řetězec není normalizován a
jsou potřeba služby kompletování, použijte:
-
java.text.Collator.compare
(Object,
Object)
-
java.text.Collator.compare
(String,
String)
public static void main(String[] args){
Collator collator = Collator.getInstance(new Locale("lt", "LT"));
String str = "k";
String str2 = "y";
int result = collator.compare(str, str2);
System.out.println("Collator: Výsledek (v
národním prostředí) = " + result);
}
|
|