Si las series a comparar contienen caracteres suplementarios Unicode (solo puede utilizarse en series normalizadas)
Utilice 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: Result = " + 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: Result (Ignore case) = " + result);
}
|
|
Si la comparación es sensible al entorno local o la serie no está normalizada y se necesitan los servicios de comparación, utilice
-
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: Result (Locale) = " + result);
}
|
|