See Also: Collator Members
Performs locale-sensitive string comparison. A concrete subclass, Java.Text.RuleBasedCollator, allows customization of the collation ordering by the use of rule sets.
Following the 's specifications for the , there are 4 different levels of strength used in comparisons:
This Collator deals only with two decomposition modes, the canonical decomposition mode and one that does not use any decomposition. The compatibility decomposition mode java.text.Collator.FULL_DECOMPOSITION is not supported here. If the canonical decomposition mode is set, Collator handles un-normalized text properly, producing the same results as if the text were normalized in NFD. If canonical decomposition is turned off, it is the user's responsibility to ensure that all text is already in the appropriate form before performing a comparison or before getting a Java.Text.CollationKey.
Examples:
java Example
// Get the Collator for US English and set its strength to PRIMARY Collator usCollator = Collator.getInstance(Locale.US); usCollator.setStrength(Collator.PRIMARY); if (usCollator.compare("abc", "ABC") == 0) { System.out.println("Strings are equivalent"); }
The following example shows how to compare two strings using the collator for the default locale.
java Example
// Compare two strings in the default locale Collator myCollator = Collator.getInstance(); myCollator.setDecomposition(Collator.NO_DECOMPOSITION); if (myCollator.compare("ḁ̀", "ḁ̀") != 0) { System.out.println("ḁ̀ is not equal to ḁ̀ without decomposition"); myCollator.setDecomposition(Collator.CANONICAL_DECOMPOSITION); if (myCollator.compare("ḁ̀", "ḁ̀") != 0) { System.out.println("Error: ḁ̀ should be equal to ḁ̀ with decomposition"); } else { System.out.println("ḁ̀ is equal to ḁ̀ with decomposition"); } } else { System.out.println("Error: ḁ̀ should be not equal to ḁ̀ without decomposition"); }