Most visited

Recently visited

Added in API level 24

Collator

public abstract class Collator
extends Object implements Comparator<Object>, Freezable<Collator>, Cloneable

java.lang.Object
   ↳ android.icu.text.Collator
Known Direct Subclasses


[ICU增强] ICU的替代Collator ICU特有的方法,字段和其他功能标记为“ [icu] ”。

Collator执行区域设置敏感的字符串比较。 具体的子类RuleBasedCollator允许通过使用规则集来自定义排序规则排序。

Collator只有在冻结时才是线程安全的。 isFrozen()Freezable

Unicode Consortium的规格为 Unicode Collation Algorithm (UCA) ,有5个不同层次的比较中使用的力量:

Unlike the JDK, ICU4J's Collator deals only with 2 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, the 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 CollationKey.

有关整理服务的更多信息,请参阅 User Guide

使用示例

 // 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.

 // Compare two strings in the default locale
 Collator myCollator = Collator.getInstance();
 myCollator.setDecomposition(NO_DECOMPOSITION);
 if (myCollator.compare("à\u0325", "a\u0325̀") != 0) {
     System.out.println("à\u0325 is not equals to a\u0325̀ without decomposition");
     myCollator.setDecomposition(CANONICAL_DECOMPOSITION);
     if (myCollator.compare("à\u0325", "a\u0325̀") != 0) {
         System.out.println("Error: à\u0325 should be equals to a\u0325̀ with decomposition");
     }
     else {
         System.out.println("à\u0325 is equals to a\u0325̀ with decomposition");
     }
 }
 else {
     System.out.println("Error: à\u0325 should be not equals to a\u0325̀ without decomposition");
 }
 

也可以看看:

Summary

Nested classes

interface Collator.ReorderCodes

重新排序可在排序规则下重新排序的非脚本组的代码。

Constants

int CANONICAL_DECOMPOSITION

分解模式值。

int FULL_DECOMPOSITION

[icu]注意:这仅用于与Java API的向后兼容。

int IDENTICAL

最小的Collator强度值。

int NO_DECOMPOSITION

分解模式值。

int PRIMARY

最强的拼版强度值。

int QUATERNARY

[icu]第四级整理者强度值。

int SECONDARY

二级整理强度值。

int TERTIARY

第三级整理强度值。

Protected constructors

Collator()

空默认构造函数使javadocs高兴

Public methods

Object clone()

克隆整理器。

Collator cloneAsThawed()

提供克隆操作。

int compare(Object source, Object target)

将源对象与目标对象进行比较。

abstract int compare(String source, String target)

根据此Collator的规则,强度和分解模式将源文本字符串与目标文本字符串进行比较。

boolean equals(String source, String target)

使用此Collator的规则,强度和分解模式比较两个文本字符串的相等性。

boolean equals(Object obj)

比较两个Collator对象的相等性。

Collator freeze()

冻结整理者。

static Locale[] getAvailableLocales()

返回安装了collators的语言环境集合,作为Locale对象。

static final ULocale[] getAvailableULocales()

[icu]返回安装了collators的语言环境集合,如ULocale对象。

abstract CollationKey getCollationKey(String source)

将字符串转换为适用于高效重复比较的整理键。

int getDecomposition()

返回此Collator的分解模式。

static String getDisplayName(Locale objectLocale, Locale displayLocale)

[icu]返回objectLocale的collator的名称,已针对displayLocale进行了本地化。

static String getDisplayName(ULocale objectLocale)

[icu]返回objectLocale的collator的名称,本地化为默认的 DISPLAY语言环境。

static String getDisplayName(ULocale objectLocale, ULocale displayLocale)

[icu]返回objectLocale的collator的名称,已针对displayLocale进行了本地化。

static String getDisplayName(Locale objectLocale)

[icu]返回objectLocale的collator的名称,本地化为默认的 DISPLAY语言环境。

static int[] getEquivalentReorderCodes(int reorderCode)

检索与给定的重新订购代码分组的所有重新订购代码。

static final ULocale getFunctionalEquivalent(String keyword, ULocale locID)

[icu]针对整理服务,针对给定的请求语言环境返回相对于给定关键字的功能上等效的语言环境。

static final ULocale getFunctionalEquivalent(String keyword, ULocale locID, boolean[] isAvailable)

[icu]针对整理服务,针对给定的请求语言环境返回相对于给定关键字的功能上等效的语言环境。

static final Collator getInstance()

返回当前默认语言环境的Collator。

static final Collator getInstance(Locale locale)

返回所需语言环境的Collator。

static final Collator getInstance(ULocale locale)

[icu]返回所需语言环境的Collator。

static final String[] getKeywordValues(String keyword)

[icu]给定关键字,返回当前正在使用的关键字的所有值的数组。

static final String[] getKeywordValuesForLocale(String key, ULocale locale, boolean commonlyUsed)

[icu]给定一个键和一个语言环境,以一个首选顺序返回一个字符串值数组,它会产生变化。

static final String[] getKeywords()

[icu]返回与整理相关的所有可能关键字的数组。

int getMaxVariable()

[icu]返回字符受备用处理行为影响的最大重新排序组。

int[] getReorderCodes()

检索该整理器的重新排序代码。

int getStrength()

返回此Collator的强度属性。

UnicodeSet getTailoredSet()

[icu]返回一个UnicodeSet,其中包含在该调整器中定制的所有字符和序列。

abstract VersionInfo getUCAVersion()

[icu]返回此collator对象的UCA版本。

abstract int getVariableTop()

[icu]获取Collator的变量top值。

abstract VersionInfo getVersion()

[icu]返回此collator对象的版本。

boolean isFrozen()

确定对象是否被冻结。

void setDecomposition(int decomposition)

设置此Collator的分解模式。

Collator setMaxVariable(int group)

[icu]将变量top设置为指定重排序组的顶部。

void setReorderCodes(int... order)

设置该整理器的重新排序代码。

void setStrength(int newStrength)

设置此Collator的强度属性。

Inherited methods

From class java.lang.Object
From interface java.util.Comparator
From interface android.icu.util.Freezable

Constants

CANONICAL_DECOMPOSITION

Added in API level 24
int CANONICAL_DECOMPOSITION

分解模式值。 通过设置CANONICAL_DECOMPOSITION,根据Unicode标准的规范变体字符将被分解以进行归类。

CANONICAL_DECOMPOSITION对应于 Unicode Technical Report #15中描述的标准化表格D.

也可以看看:

常量值:17(0x00000011)

FULL_DECOMPOSITION

Added in API level 24
int FULL_DECOMPOSITION

[icu]注意:这仅用于与Java API的向后兼容。 它不应该使用,应该使用IDENTICAL。 ICU的排序规则不支持Java的FULL_DECOMPOSITION模式。

常量值:15(0x0000000f)

IDENTICAL

Added in API level 24
int IDENTICAL

最小的Collator强度值。 当所有其他优势相等时,IDENTICAL强度将被用作决胜球。 每个字符串的NFD格式的Unicode代码点值进行比较,以防万一没有差异。 有关更多说明,请参阅班级文档

请注意,此值与JDK的不同

常量值:15(0x0000000f)

NO_DECOMPOSITION

Added in API level 24
int NO_DECOMPOSITION

分解模式值。 使用NO_DECOMPOSITION设置,字符串不会被分解以进行整理。 这是默认的分解设置,除非用于创建Collator的语言环境另有说明。

请注意,此值与JDK的不同。

也可以看看:

常量值:16(0x00000010)

PRIMARY

Added in API level 24
int PRIMARY

最强的拼版强度值。 通常用于表示基本字符之间的差异。 有关更多说明,请参阅班级文档

也可以看看:

常量值:0(0x00000000)

QUATERNARY

Added in API level 24
int QUATERNARY

[icu]第四级整理者强度值。 当标点符号被忽略(见Ignoring Punctuation in the User Guide )在PRIMARY到TERTIARY的强度时,可以使用额外的强度级别来区分有标点符号和没有标点符号的单词。 有关更多说明,请参阅班级文档

也可以看看:

常量值:3(0x00000003)

SECONDARY

Added in API level 24
int SECONDARY

二级整理强度值。 字符中的重音被认为是次要的差异。 取决于语言,字母之间的其他差异也可以被认为是次要差异。 有关更多说明,请参阅班级文档

也可以看看:

常数值:1(0x00000001)

TERTIARY

Added in API level 24
int TERTIARY

第三级整理强度值。 在这个强度水平上,字符的大写和小写字母差别是有区别的。 另外,一个字母的变体不同于第三级的基本形式。 有关更多说明,请参阅班级文档

也可以看看:

常量值:2(0x00000002)

Protected constructors

Collator

Added in API level 24
Collator ()

空默认构造函数使javadocs高兴

Public methods

clone

Added in API level 24
Object clone ()

克隆整理器。

Returns
Object a clone of this collator.
Throws
CloneNotSupportedException

cloneAsThawed

Added in API level 24
Collator cloneAsThawed ()

提供克隆操作。 任何克隆都是最初解冻的。

Returns
Collator

compare

Added in API level 24
int compare (Object source, 
                Object target)

将源对象与目标对象进行比较。

Parameters
source Object: the source Object.
target Object: the target Object.
Returns
int Returns an integer value. Value is less than zero if source is less than target, value is zero if source and target are equal, value is greater than zero if source is greater than target.
Throws
ClassCastException thrown if either arguments cannot be cast to CharSequence.

compare

Added in API level 24
int compare (String source, 
                String target)

根据此Collator的规则,强度和分解模式将源文本字符串与目标文本字符串进行比较。 根据源字符串是否小于,等于或大于目标字符串,返回小于,等于或大于零的整数。 有关使用示例,请参阅Collator类描述。

Parameters
source String: the source String.
target String: the target String.
Returns
int Returns an integer value. Value is less than zero if source is less than target, value is zero if source and target are equal, value is greater than zero if source is greater than target.
Throws
NullPointerException thrown if either argument is null.

也可以看看:

equals

Added in API level 24
boolean equals (String source, 
                String target)

使用此Collator的规则,强度和分解模式比较两个文本字符串的相等性。 便利的方法。

Parameters
source String: the source string to be compared.
target String: the target string to be compared.
Returns
boolean true if the strings are equal according to the collation rules, otherwise false.
Throws
NullPointerException thrown if either arguments is null.

也可以看看:

equals

Added in API level 24
boolean equals (Object obj)

比较两个Collator对象的相等性。 如果Collator对象具有相同的排序(排序和搜索)行为,则它们是相等的。

基类检查null和相等类型。 子类应该重写。

Parameters
obj Object: the Collator to compare to.
Returns
boolean true if this Collator has exactly the same collation behavior as obj, false otherwise.

freeze

Added in API level 24
Collator freeze ()

冻结整理者。

Returns
Collator the collator itself.

getAvailableLocales

Added in API level 24
Locale[] getAvailableLocales ()

返回安装了collators的语言环境集合,作为Locale对象。 请注意,Locale对象不支持RFC 3066。

Returns
Locale[] the list of locales in which collators are installed. This list includes any that have been registered, in addition to those that are installed with ICU4J.

getAvailableULocales

Added in API level 24
ULocale[] getAvailableULocales ()

[icu]返回安装了collators的语言环境集合,如ULocale对象。 ULocale对象支持RFC 3066。

Returns
ULocale[] the list of locales in which collators are installed. This list includes any that have been registered, in addition to those that are installed with ICU4J.

getCollationKey

Added in API level 24
CollationKey getCollationKey (String source)

将字符串转换为适用于高效重复比较的整理键。 所得到的关键取决于整理者的规则,强度和分解模式。

请注意,整理键通常比简单比较效率低。 有关更多详细信息,请参阅ICU用户指南。

有关更多信息,请参阅CollationKey类文档。

Parameters
source String: the string to be transformed into a CollationKey.
Returns
CollationKey the CollationKey for the given String based on this Collator's collation rules. If the source String is null, a null CollationKey is returned.

也可以看看:

getDecomposition

Added in API level 24
int getDecomposition ()

返回此Collator的分解模式。 分解模式决定如何处理由Unicode组成的字符。

有关更多详细信息,请参阅Collator类描述。

基类方法总是返回NO_DECOMPOSITION 如果合适的话,子类应该覆盖它。

Returns
int the decomposition mode

也可以看看:

getDisplayName

Added in API level 24
String getDisplayName (Locale objectLocale, 
                Locale displayLocale)

[icu]返回objectLocale的collator的名称,已针对displayLocale进行了本地化。

Parameters
objectLocale Locale: the locale of the collator
displayLocale Locale: the locale for the collator's display name
Returns
String the display name

getDisplayName

Added in API level 24
String getDisplayName (ULocale objectLocale)

[icu]返回针对默认的 DISPLAY语言环境本地化的objectLocale的collator的名称。

Parameters
objectLocale ULocale: the locale of the collator
Returns
String the display name

也可以看看:

getDisplayName

Added in API level 24
String getDisplayName (ULocale objectLocale, 
                ULocale displayLocale)

[icu]返回objectLocale的collator的名称,已针对displayLocale进行了本地化。

Parameters
objectLocale ULocale: the locale of the collator
displayLocale ULocale: the locale for the collator's display name
Returns
String the display name

getDisplayName

Added in API level 24
String getDisplayName (Locale objectLocale)

[icu]返回objectLocale的collator的名称,本地化为默认的 DISPLAY语言环境。

Parameters
objectLocale Locale: the locale of the collator
Returns
String the display name

也可以看看:

getEquivalentReorderCodes

Added in API level 24
int[] getEquivalentReorderCodes (int reorderCode)

检索与给定的重新订购代码分组的所有重新订购代码。 一些重排代码被分组并且必须重新排列在一起。 从ICU 55开始,脚本只在基本相等时重新排列,例如平假名和片假名。

Parameters
reorderCode int: The reorder code to determine equivalence for.
Returns
int[] the set of all reorder codes in the same group as the given reorder code.

也可以看看:

getFunctionalEquivalent

Added in API level 24
ULocale getFunctionalEquivalent (String keyword, 
                ULocale locID)

[icu]针对整理服务,针对给定的请求语言环境返回相对于给定关键字的功能上等效的语言环境。

Parameters
keyword String: a particular keyword as enumerated by getKeywords.
locID ULocale: The requested locale
Returns
ULocale the locale

也可以看看:

getFunctionalEquivalent

Added in API level 24
ULocale getFunctionalEquivalent (String keyword, 
                ULocale locID, 
                boolean[] isAvailable)

[icu]针对整理服务,针对给定的请求语言环境返回相对于给定关键字的功能上等效的语言环境。 如果两个语言环境返回相同的结果,则为这些语言环境实例化的整理者将表现等效。 反过来并不总是如此; 由于内部细节,两名校友实际上可能是等效的,但返回不同的结果。 返回结果没有上述内容的其他含义,并且对两个语言环境之间的关系没有任何意义。 这适用于希望缓存整理器的应用程序,或者在可能的情况下重新使用整理器。 功能等同物可能随时间而改变。 欲了解更多信息,请参阅ICU用户指南的Locales and Services部分。

Parameters
keyword String: a particular keyword as enumerated by getKeywords.
locID ULocale: The requested locale
isAvailable boolean: If non-null, isAvailable[0] will receive and output boolean that indicates whether the requested locale was 'available' to the collation service. If non-null, isAvailable must have length >= 1.
Returns
ULocale the locale

getInstance

Added in API level 24
Collator getInstance ()

返回当前默认语言环境的Collator。 缺省语言环境由java.util.Locale.getDefault()确定。

Returns
Collator the Collator for the default locale (for example, en_US) if it is created successfully. Otherwise if there is no Collator associated with the current locale, the root collator will be returned.

也可以看看:

getInstance

Added in API level 24
Collator getInstance (Locale locale)

返回所需语言环境的Collator。

对于某些语言,可以使用多种归类类型; 例如,“de-u-co-phonebk”。 从ICU 54开始,也可以通过区域设置关键字,在旧的区域设置扩展语法(“el @ colCaseFirst = upper”,仅限于ULocale )或语言标记语法(“el-u-kf-upper” )。 User Guide: Collation API

Parameters
locale Locale: the desired locale.
Returns
Collator Collator for the desired locale if it is created successfully. Otherwise if there is no Collator associated with the current locale, the root collator will be returned.

也可以看看:

getInstance

Added in API level 24
Collator getInstance (ULocale locale)

[icu]返回所需语言环境的Collator。

对于某些语言,可以使用多种归类类型; 例如,“de @ collation =电话簿”。 从ICU 54开始,也可以通过区域设置关键字以旧的区域扩展语法(“el @ colCaseFirst = upper”)或语言标记语法(“el-u-kf-upper”)来指定排序规则属性。 User Guide: Collation API

Parameters
locale ULocale: the desired locale.
Returns
Collator Collator for the desired locale if it is created successfully. Otherwise if there is no Collator associated with the current locale, the root collator will be returned.

也可以看看:

getKeywordValues

Added in API level 24
String[] getKeywordValues (String keyword)

[icu]给定关键字,返回当前正在使用的关键字的所有值的数组。

Parameters
keyword String: one of the keywords returned by getKeywords.
Returns
String[]

也可以看看:

getKeywordValuesForLocale

Added in API level 24
String[] getKeywordValuesForLocale (String key, 
                ULocale locale, 
                boolean commonlyUsed)

[icu]给定一个键和一个语言环境,以一个首选顺序返回一个字符串值数组,它会产生变化。 这些都是且仅有那些值,其中由输入语言环境加上输入关键字和该值形成的语言环境的服务的打开(创建)具有与仅使用输入语言环境创建的行为不同的行为。

Parameters
key String: one of the keys supported by this service. For now, only "collation" is supported.
locale ULocale: the locale
commonlyUsed boolean: if set to true it will return only commonly used values with the given locale in preferred order. Otherwise, it will return all the available values for the locale.
Returns
String[] an array of string values for the given key and the locale.

getKeywords

Added in API level 24
String[] getKeywords ()

[icu]返回与整理相关的所有可能关键字的数组。 此时,此服务唯一可识别的关键字是“整理”。

Returns
String[] an array of valid collation keywords.

也可以看看:

getMaxVariable

Added in API level 24
int getMaxVariable ()

[icu]返回字符受备用处理行为影响的最大重新排序组。

基类实现返回Collator.ReorderCodes.PUNCTUATION。

Returns
int the maximum variable reordering group.

也可以看看:

getReorderCodes

Added in API level 24
int[] getReorderCodes ()

检索该整理器的重新排序代码。 这些重新排序的代码是UScript代码和ReorderCodes的组合。

Returns
int[] a copy of the reordering codes for this collator; if none are set then returns an empty array

也可以看看:

getStrength

Added in API level 24
int getStrength ()

返回此Collator的强度属性。 强度属性决定了认为重要的最小差异水平。 [icu]注意:这可以返回QUERERNARY的强度,这是JDK版本不支持的。

有关更多详细信息,请参阅Collator类描述。

基类方法总是返回TERTIARY 如果合适的话,子类应该覆盖它。

Returns
int this Collator's current strength attribute.

也可以看看:

getTailoredSet

Added in API level 24
UnicodeSet getTailoredSet ()

[icu]返回一个UnicodeSet,其中包含在该调整器中定制的所有字符和序列。

Returns
UnicodeSet a pointer to a UnicodeSet object containing all the code points and sequences that may sort differently than in the root collator.

getUCAVersion

Added in API level 24
VersionInfo getUCAVersion ()

[icu]返回此collator对象的UCA版本。

Returns
VersionInfo the version object associated with this collator

getVariableTop

Added in API level 24
int getVariableTop ()

[icu]获取Collator的变量top值。

Returns
int the variable top primary weight

也可以看看:

getVersion

Added in API level 24
VersionInfo getVersion ()

[icu]返回此collator对象的版本。

Returns
VersionInfo the version object associated with this collator

isFrozen

Added in API level 24
boolean isFrozen ()

确定对象是否被冻结。

解冻的Collator是可变的,不是线程安全的。 冻结的Collator是不可变的并且是线程安全的。

Returns
boolean

setDecomposition

Added in API level 24
void setDecomposition (int decomposition)

设置此Collator的分解模式。 通过使用CANONICAL_DECOMPOSITION设置此分解属性,Collator可以正确处理未标准化的文本,产生与文本标准化相同的结果。 如果设置了NO_DECOMPOSITION,则用户有责任确保所有文本在比较前或获取CollationKey之前已经处于适当的形式。 调整分解模式允许用户选择更快和更完整的整理行为。

由于许多世界语言不需要文本标准化,因此大多数语言环境都将NO_DECOMPOSITION设置为默认分解模式。

基类方法什么都不做。 如果合适的话,子类应该覆盖它。

有关分解模式的描述,请参阅getDecomposition。

Parameters
decomposition int: the new decomposition mode
Throws
IllegalArgumentException If the given value is not a valid decomposition mode.

也可以看看:

setMaxVariable

Added in API level 24
Collator setMaxVariable (int group)

[icu]将变量top设置为指定重排序组的顶部。 变量top决定了受备用处理行为影响的最高排序字符。 如果该属性设置为UCOL_NON_IGNORABLE,则变量top不起作用。

基类实现抛出一个UnsupportedOperationException。

Parameters
group int: one of Collator.ReorderCodes.SPACE, Collator.ReorderCodes.PUNCTUATION, Collator.ReorderCodes.SYMBOL, Collator.ReorderCodes.CURRENCY; or Collator.ReorderCodes.DEFAULT to restore the default max variable group
Returns
Collator this

也可以看看:

setReorderCodes

Added in API level 24
void setReorderCodes (int... order)

设置该整理器的重新排序代码。 排序重新排序允许脚本和其他一组字符相对于彼此移动。 这种重新排序是在DUCET / CLDR标准整理顺序的基础上完成的。 重新排序可以指定要放置在排序顺序的开始和/或结束处的组。 这些组使用UScript代码和Collator.ReorderCodes条目进行指定。

默认情况下,重新排序为订单开始指定的代码按照几个特殊的非脚本块之后的顺序排列。 这些特殊的字符组是空格,标点符号,货币和数字。 这些特殊小组用Collator.ReorderCodes条目表示。 如果在重新排序中明确指定了这些特殊组,则脚本组可以与这些特殊的非脚本组混合。

特殊代码OTHERS表示在给定的重新排序代码列表中未明确提及的任何脚本。 任何在OTHERS之后的事情都会按照给定的顺序进行重新排序。

特殊重排序代码DEFAULT将重新排列该配页器的重新排序为该配页器的默认值。 默认的重新排序可能是DUCET / CLDR顺序,或者可能是根据资源数据或规则创建此配页器时指定的重新排序。 DEFAULT代码必须是使用它时提供的唯一代码。 如果不是,则IllegalArgumentException将被抛出。

特殊订货代码NONE将删除该整理器的任何重新排序。 设置不重新排序的结果将是使用DUCET / CLDR排序。 NONE代码必须是使用它时提供的唯一代码。

Parameters
order int: the reordering codes to apply to this collator; if this is null or an empty array then this clears any existing reordering

也可以看看:

setStrength

Added in API level 24
void setStrength (int newStrength)

设置此Collator的强度属性。 强度属性决定了比较过程中认为重要的最小差异水平。

基类方法什么都不做。 如果合适的话,子类应该覆盖它。

有关使用示例,请参阅Collator类描述。

Parameters
newStrength int: the new strength value.
Throws
IllegalArgumentException if the new strength value is not valid.

也可以看看:

Hooray!