com.ibm.icu.text
Class UTF16.StringComparator
- UTF16
- Comparator
public static final class UTF16.StringComparator
UTF16 string comparator class.
Allows UTF16 string comparison to be done with the various modes
- Code point comparison or code unit comparison
- Case sensitive comparison, case insensitive comparison or case
insensitive comparison with special handling for character 'i'.
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.
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 comparison:
Comparison is case insensitive, strings are folded using modified
mappings defined in Unicode data file CaseFolding.txt, before
comparison.
|
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.
|
int | compare(Object a, Object 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.
|
FOLD_CASE_DEFAULT
public static final 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.
FOLD_CASE_EXCLUDE_SPECIAL_I
public static final int FOLD_CASE_EXCLUDE_SPECIAL_I
Option value for case folding comparison:
Comparison is case insensitive, strings are folded using modified
mappings defined in Unicode data file CaseFolding.txt, before
comparison.
The modified set of mappings is provided in a Unicode data file
CaseFolding.txt to handle dotted I and dotless i appropriately for
Turkic languages (tr, az).
Before Unicode 3.2, CaseFolding.txt contains mappings marked with
'I' that are to be included for default mappings and excluded for
the Turkic-specific mappings.
Unicode 3.2 CaseFolding.txt instead contains mappings marked with
'T' that are to be excluded for default mappings and included for
the Turkic-specific mappings.
StringComparator
public StringComparator()
Default constructor that does code unit comparison and case
sensitive comparison.
StringComparator
public StringComparator(boolean codepointcompare,
boolean ignorecase,
int foldcaseoption)
Constructor that does comparison based on the argument options.
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.
compare
public int compare(Object a,
Object b)
Compare two strings depending on the options selected during
construction.
a
- first source string.b
- second source string.
- 0 returned if a == b. If a <32b, a negative value is returned.
Otherwise if a > b, a positive value is returned.
getCodePointCompare
public boolean getCodePointCompare()
Checks if the comparison mode is code point compare.
- true for code point compare, false for code unit compare
getIgnoreCase
public boolean getIgnoreCase()
Checks if Comparator is in the case insensitive mode.
- true if Comparator performs case insensitive comparison,
false otherwise
getIgnoreCaseOption
public int getIgnoreCaseOption()
Gets the fold case options set in Comparator to be used with case
insensitive comparison.
- either FOLD_CASE_DEFAULT or FOLD_CASE_EXCLUDE_SPECIAL_I
setCodePointCompare
public void setCodePointCompare(boolean flag)
Sets the comparison mode to code point compare if flag is true.
Otherwise comparison mode is set to code unit compare
flag
- true for code point compare, false for code unit compare
setIgnoreCase
public 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.
ignorecase
- true for case-insitive 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.
Copyright (c) 2006 IBM Corporation and others.