| java.lang.Object | ||
| ↳ | java.text.Collator | |
| ↳ | java.text.RuleBasedCollator | |
A concrete subclass of Collator.
 It is based on the ICU RuleBasedCollator which implements the
 CLDR and Unicode collation algorithms.
 
Most of the time, you create a Collator instance for a Locale
 by calling the getInstance() factory method.
 You can construct a RuleBasedCollator if you need a custom sort order.
 
The root collator's sort order is the CLDR root collation order
 which in turn is the Unicode default sort order with a few modifications.
 A RuleBasedCollator is built from a rule String which changes the
 sort order of some characters and strings relative to the default order.
 
A rule string usually contains one or more rule chains. A rule chain consists of a reset followed by one or more rules. The reset anchors the following rules in the default sort order. The rules change the order of the their characters and strings relative to the reset point.
A reset is an ampersand & followed by one or more characters for the reset position.
 A rule is a relation operator, which specifies the level of difference,
 also followed by one or more characters.
 A multi-character rule creates a "contraction".
 A multi-character reset position usually creates "expansions".
 
For example, the following rules make "ä" sort with a diacritic-like (secondary) difference from "ae" (like in German phonebook sorting), and make "å" and "aa" sort as a base letter (primary) after "z" (like in Danish). Uppercase forms sort with a case-like (tertiary) difference after their lowercase forms.
&AE<<ä <<<Ä &z<å<<<Å<<<aa<<<Aa<<<AA
For details see
Note: earlier versions of RuleBasedCollator up to and including Android 4.4 (KitKat)
 allowed the omission of the reset from the first rule chain.
 This was interpreted as an implied reset after the last non-Han script in the default order.
 However, this is not a useful reset position, except for large tailorings of
 Han characters themselves.
 Starting with the CLDR 24 collation specification and the ICU 53 implementation,
 the initial reset is required.
 
If the rule string does not follow the syntax, then RuleBasedCollator throws a
 ParseException.
| [Expand] Inherited Constants | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|  From class
java.text.Collator | |||||||||||
| Public Constructors | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Constructs a new instance of  RuleBasedCollatorusing the
 specifiedrules. | |||||||||||
| Public Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Returns a new collator with the same collation rules, decomposition mode and
 strength value as this collator. | |||||||||||
| Compares the  sourcetext to thetargettext according to
 the collation rules, strength and decomposition mode for thisRuleBasedCollator. | |||||||||||
| Compares the specified object with this  RuleBasedCollatorand
 indicates if they are equal. | |||||||||||
| Obtains a  CollationElementIteratorfor the given string. | |||||||||||
| Obtains a  CollationElementIteratorfor the givenCharacterIterator. | |||||||||||
| Returns the  CollationKeyfor the given source text. | |||||||||||
| Returns the collation rules of this collator. | |||||||||||
| Returns an integer hash code for this object. | |||||||||||
| [Expand] Inherited Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|  From class
  java.text.Collator | |||||||||||
|  From class
  java.lang.Object | |||||||||||
|  From interface
  java.util.Comparator | |||||||||||
Constructs a new instance of RuleBasedCollator using the
 specified rules. (See the class description.)
 
 Note that the rules are interpreted as a delta to the
 default sort order. This differs
 from other implementations which work with full rules
 specifications and may result in different behavior.
| rules | the collation rules. | 
|---|
| NullPointerException | if rules == null. | 
|---|---|
| ParseException | if rulescontains rules with invalid collation rule
             syntax. | 
Returns a new collator with the same collation rules, decomposition mode and strength value as this collator.
Compares the source text to the target text according to
 the collation rules, strength and decomposition mode for this
 RuleBasedCollator. See the Collator class description
 for an example of use.
| source | the source text. | 
|---|---|
| target | the target text. | 
source is less than,
         equivalent to, or greater than target.
Compares the specified object with this RuleBasedCollator and
 indicates if they are equal. In order to be equal, object must be
 an instance of Collator with the same collation rules and the
 same attributes.
| obj | the object to compare with this object. | 
|---|
true if the specified object is equal to this
         RuleBasedCollator; false otherwise.Obtains a CollationElementIterator for the given string.
| source | the source string. | 
|---|
CollationElementIterator for source.
Obtains a CollationElementIterator for the given
 CharacterIterator. The source iterator's integrity will be
 preserved since a new copy will be created for use.
| source | the source character iterator. | 
|---|
CollationElementIterator for source.
Returns the CollationKey for the given source text.
| source | the specified source text. | 
|---|
CollationKey for the given source text.
Returns the collation rules of this collator. These rules can be
 fed into the RuleBasedCollator(String) constructor.
 
The returned string will be empty unless you constructed the instance yourself. The string forms of the collation rules are omitted to save space on the device.
Returns an integer hash code for this object. By contract, any two
 objects for which equals(Object) returns true must return
 the same hash code value. This means that subclasses of Object
 usually override both methods or neither method.
 
Note that hash values must not change over time unless information used in equals comparisons also changes.
See Writing a correct
 hashCode method
 if you intend implementing your own hashCode method.