public static final class UTF16.StringComparator extends Object implements Comparator<String>
UTF16 string comparator class. Allows UTF16 string comparison to be done with the various modes
The code unit or code point comparison differ only when comparing supplementary code points (\u10000..\u10ffff) to BMP code points near the end of the BMP (i.e., \ue000..\uffff). In code unit comparison, high BMP code points sort after supplementary code points because they are stored as pairs of surrogates which are at \ud800..\udfff.
FOLD_CASE_DEFAULT
,
FOLD_CASE_EXCLUDE_SPECIAL_I
Modifier and Type | Field and Description |
---|---|
static int |
FOLD_CASE_DEFAULT
Option value for case folding comparison:
Comparison is case insensitive, strings are folded using default mappings defined in
Unicode data file CaseFolding.txt, before comparison.
|
static int |
FOLD_CASE_EXCLUDE_SPECIAL_I
Option value for case folding:
Use the modified set of mappings provided in CaseFolding.txt to handle dotted I
and dotless i appropriately for Turkic languages (tr, az).
|
Constructor and Description |
---|
StringComparator()
Default constructor that does code unit comparison and case sensitive comparison.
|
StringComparator(boolean codepointcompare,
boolean ignorecase,
int foldcaseoption)
Constructor that does comparison based on the argument options.
|
Modifier and Type | Method and Description |
---|---|
int |
compare(String a,
String b)
Compare two strings depending on the options selected during construction.
|
boolean |
getCodePointCompare()
Checks if the comparison mode is code point compare.
|
boolean |
getIgnoreCase()
Checks if Comparator is in the case insensitive mode.
|
int |
getIgnoreCaseOption()
Gets the fold case options set in Comparator to be used with case insensitive comparison.
|
void |
setCodePointCompare(boolean flag)
Sets the comparison mode to code point compare if flag is true.
|
void |
setIgnoreCase(boolean ignorecase,
int foldcaseoption)
Sets the Comparator to case-insensitive comparison mode if argument is true, otherwise
case sensitive comparison mode if set to false.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
comparing, comparing, comparingDouble, comparingInt, comparingLong, equals, naturalOrder, nullsFirst, nullsLast, reversed, reverseOrder, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
public static final int FOLD_CASE_DEFAULT
Comparison is case insensitive, strings are folded using default mappings defined in Unicode data file CaseFolding.txt, before comparison.
public static final int FOLD_CASE_EXCLUDE_SPECIAL_I
Comparison is case insensitive, strings are folded using modified mappings defined in Unicode data file CaseFolding.txt, before comparison.
UCharacter.FOLD_CASE_EXCLUDE_SPECIAL_I
,
Constant Field Valuespublic StringComparator()
public StringComparator(boolean codepointcompare, boolean ignorecase, int foldcaseoption)
codepointcompare
- Flag to indicate true for code point comparison or false for code unit
comparison.ignorecase
- False for case sensitive comparison, true for case-insensitive comparisonfoldcaseoption
- FOLD_CASE_DEFAULT or FOLD_CASE_EXCLUDE_SPECIAL_I. This option is used only
when ignorecase is set to true. If ignorecase is false, this option is
ignored.IllegalArgumentException
- If foldcaseoption is out of rangeFOLD_CASE_DEFAULT
,
FOLD_CASE_EXCLUDE_SPECIAL_I
public void setCodePointCompare(boolean flag)
flag
- True for code point compare, false for code unit comparepublic void setIgnoreCase(boolean ignorecase, int foldcaseoption)
ignorecase
- True for case-insensitive comparison, false for case sensitive comparisonfoldcaseoption
- FOLD_CASE_DEFAULT or FOLD_CASE_EXCLUDE_SPECIAL_I. This option is used only
when ignorecase is set to true. If ignorecase is false, this option is
ignored.FOLD_CASE_DEFAULT
,
FOLD_CASE_EXCLUDE_SPECIAL_I
public boolean getCodePointCompare()
public boolean getIgnoreCase()
public int getIgnoreCaseOption()
FOLD_CASE_DEFAULT
,
FOLD_CASE_EXCLUDE_SPECIAL_I
public int compare(String a, String b)
compare
in interface Comparator<String>
a
- first source string.b
- second source string.ClassCastException
- thrown when either a or b is not a String objectCopyright © 2016 Unicode, Inc. and others.