Most visited

Recently visited

Added in API level 1

Collator

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

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


Collator类执行区域设置敏感的String比较。 您可以使用此类为自然语言文本构建搜索和排序例程。

Collator是一个抽象基类。 子类实现特定的整理策略。 一个子类RuleBasedCollator目前与Java平台一起提供,适用于多种语言。 其他的子类可以被创建来处理更多的专业需求。

像其他语言环境敏感类一样,您可以使用静态工厂方法getInstance来获取给定语言环境的相应Collator对象。 如果您需要了解特定归类策略的详细信息或需要修改该策略,则只需查看Collator的子类。

以下示例显示如何比较使用 Collator作为默认语言环境的两个字符串。

 // Compare two strings in the default locale
 Collator myCollator = Collator.getInstance();
 if( myCollator.compare("abc", "ABC") < 0 )
     System.out.println("abc is less than ABC");
 else
     System.out.println("abc is greater than or equal to ABC");
 

您可以设置Collator强度属性以确定比较中认为有意义的差异水平。 提供四个优势: PRIMARYSECONDARYTERTIARY ,并IDENTICAL 语言功能的确切分配与语言环境有关。 例如,在捷克语中,“e”和“f”被认为是主要差异,而“e”和“Ä”是次要差异,“e”和“E”是第三差异,“e”和“e”是相同。 以下显示美国英语如何忽略大小写和重音。

 //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");
 }
 

为了比较String只有一次, compare方法提供了最佳性能。 但是,当对String列表进行排序时,通常需要多次比较每个String 在这种情况下, CollationKey提供更好的性能。 所述CollationKey类转换String到一系列可以按位与其他进行比较的比特CollationKey秒。 CollationKey由创建Collator对象对于给定的String
注: CollationKey从不同来源Collator s不能比拟的。 有关使用CollationKey的示例,请参阅CollationKey的类描述。

也可以看看:

Summary

Constants

int CANONICAL_DECOMPOSITION

分解模式值。

int FULL_DECOMPOSITION

分解模式值。

int IDENTICAL

Collator强度值。

int NO_DECOMPOSITION

分解模式值。

int PRIMARY

Collator强度值。

int SECONDARY

Collator强度值。

int TERTIARY

Collator强度值。

Protected constructors

Collator()

默认的构造函数。

Public methods

Object clone()

返回一个具有与此collator相同分解模式和强度值的新整理器。

int compare(Object o1, Object o2)

比较它的两个命令。

abstract int compare(String source, String target)

根据此Collator的归类规则将源字符串与目标字符串进行比较。

boolean equals(String source, String target)

基于此Collator排序规则比较两个字符串相等的便捷方法。

boolean equals(Object that)

比较两名校友的平等。

static Locale[] getAvailableLocales()

返回 getInstance方法可以返回本地化实例的所有语言环境的数组。

abstract CollationKey getCollationKey(String source)

将字符串转换为一系列可以按位与其他CollationKeys进行比较的位。

int getDecomposition()

获取此Collator的分解模式。

static Collator getInstance()

获取当前默认语言环境的Collator。

static Collator getInstance(Locale desiredLocale)

获取所需语言环境的Collator。

int getStrength()

返回此Collator的强度属性。

abstract int hashCode()

为此Collator生成哈希码。

void setDecomposition(int decompositionMode)

设置此Collator的分解模式。

void setStrength(int newStrength)

设置此Collator的强度属性。

Inherited methods

From class java.lang.Object
From interface java.util.Comparator

Constants

CANONICAL_DECOMPOSITION

Added in API level 1
int CANONICAL_DECOMPOSITION

分解模式值。 通过设置CANONICAL_DECOMPOSITION,根据Unicode标准的规范变体字符将被分解以进行归类。 这应该用于获得重音字符的正确排序。

CANONICAL_DECOMPOSITION对应于标准化表格D,如 Unicode Technical Report #15中所述

也可以看看:

常数值:1(0x00000001)

FULL_DECOMPOSITION

Added in API level 1
int FULL_DECOMPOSITION

分解模式值。 通过设置FULL_DECOMPOSITION,Unicode规范变体和Unicode兼容性变体将被分解以进行归类。 这不仅导致重音字符被整理,而且还导致具有特殊格式的字符与它们的规范形式进行整理。 例如,半宽和全角ASCII和片假名字符会整理在一起。 FULL_DECOMPOSITION是最完整的,因此也是最慢的分解模式。

FULL_DECOMPOSITION对应于 Unicode Technical Report #15中描述的规范化表单KD。

也可以看看:

常量值:2(0x00000002)

IDENTICAL

Added in API level 1
int IDENTICAL

Collator强度值。 设置时,比较过程中所有差异均被视为显着。 语言特征的优势分配是依赖于语言环境的。 控制字符(“\ u0001”与“\ u0002”)在PRIMARY,SECONDARY和TERTIARY级别被认为是相同的,但在IDENTICAL级别不同。 另外,如果将分解设置为NO_DECOMPOSITION,则在诸如“\ u00C0”(A-grave)的预先组合的口音和诸如“A \ u0300”(A,组合 - 坟墓)的组合口音之间的差异将被认为是显着的。

常量值:3(0x00000003)

NO_DECOMPOSITION

Added in API level 1
int NO_DECOMPOSITION

分解模式值。 使用NO_DECOMPOSITION设置时,重音字符将不会被分解以进行整理。 这是默认设置,可提供最快的排序规则,但只会为不使用重音的语言生成正确的结果。

也可以看看:

常量值:0(0x00000000)

PRIMARY

Added in API level 1
int PRIMARY

Collator强度值。 设置时,比较期间只有主要差异被认为是显着的。 语言特征的优势分配是依赖于语言环境的。 一个常见的例子是不同的基本字母(“a”与“b”)被认为是主要区别。

也可以看看:

常量值:0(0x00000000)

SECONDARY

Added in API level 1
int SECONDARY

Collator强度值。 设置时,比较中只有SECONDARY和以上的差异被认为是显着的。 语言特征的优势分配是依赖于语言环境的。 一个常见的例子是同一个基本字母(“a”和“Ô)的不同重音形式被认为是SECONDARY的区别。

也可以看看:

常数值:1(0x00000001)

TERTIARY

Added in API level 1
int TERTIARY

Collator强度值。 设置时,比较过程中只有第三位和以上的差异被认为是显着的。 语言特征的优势分配是依赖于语言环境的。 一个常见的例子是案例差异(“a”与“A”)被视为第三种差异。

也可以看看:

常量值:2(0x00000002)

Protected constructors

Collator

Added in API level 1
Collator ()

默认的构造函数。 这个构造函数是受保护的,所以子类可以访问它。 用户通常通过调用工厂方法getInstance来创建Collator子类。

也可以看看:

Public methods

clone

Added in API level 1
Object clone ()

返回一个具有与此collator相同分解模式和强度值的新整理器。

Returns
Object a shallow copy of this collator.

也可以看看:

compare

Added in API level 1
int compare (Object o1, 
                Object o2)

比较它的两个命令。 由于第一个参数小于,等于或大于第二个参数,因此返回负整数,零或正整数。

该实现仅返回 compare((String)o1, (String)o2)

Parameters
o1 Object
o2 Object
Returns
int a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.
Throws
ClassCastException the arguments cannot be cast to Strings.

也可以看看:

compare

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

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

对于一次比较,此方法具有最佳性能。 如果给定的字符串将参与多重比较,则CollationKey.compareTo具有最佳性能。 有关使用CollationKeys的示例,请参阅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.

也可以看看:

equals

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

基于此Collator排序规则比较两个字符串相等的便捷方法。

Parameters
source String: the source string to be compared with.
target String: the target string to be compared with.
Returns
boolean true if the strings are equal according to the collation rules. false, otherwise.

也可以看看:

equals

Added in API level 1
boolean equals (Object that)

比较两名校友的平等。

Parameters
that Object: the Collator to be compared with this.
Returns
boolean true if this Collator is the same as that Collator; false otherwise.

getAvailableLocales

Added in API level 1
Locale[] getAvailableLocales ()

返回getInstance方法可返回本地化实例的所有语言环境的数组。 返回的数组表示Java运行时支持的语言环境联合以及安装的CollatorProvider实现。 它必须包含至少一个等于Locale.US的Locale实例。

Returns
Locale[] An array of locales for which localized Collator instances are available.

getCollationKey

Added in API level 1
CollationKey getCollationKey (String source)

将字符串转换为一系列可以按位与其他CollationKeys进行比较的位。 当字符串参与多重比较时,CollationKeys比Collator.compare提供更好的性能。 有关使用CollationKeys的示例,请参阅Collator类描述。

Parameters
source String: the string to be transformed into a collation key.
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 1
int getDecomposition ()

获取此Collator的分解模式。 分解模式决定如何处理Unicode组成字符。 调整分解模式允许用户选择更快和更完整的整理行为。

分解模式的三个值是:

  • NO_DECOMPOSITION,
  • CANONICAL_DECOMPOSITION
  • FULL_DECOMPOSITION.
See the documentation for these three constants for a description of their meaning.

Returns
int the decomposition mode

也可以看看:

getInstance

Added in API level 1
Collator getInstance ()

获取当前默认语言环境的Collator。 缺省语言环境由java.util.Locale.getDefault确定。

Returns
Collator the Collator for the default locale.(for example, en_US)

也可以看看:

getInstance

Added in API level 1
Collator getInstance (Locale desiredLocale)

获取所需语言环境的Collator。

Parameters
desiredLocale Locale: the desired locale.
Returns
Collator the Collator for the desired locale.

也可以看看:

getStrength

Added in API level 1
int getStrength ()

返回此Collator的强度属性。 强度属性决定了比较过程中认为有意义的最小差异水平。 有关使用示例,请参阅Collator类描述。

Returns
int this Collator's current strength property.

也可以看看:

hashCode

Added in API level 1
int hashCode ()

为此Collator生成哈希码。

Returns
int a hash code value for this object.

setDecomposition

Added in API level 1
void setDecomposition (int decompositionMode)

设置此Collator的分解模式。 有关分解模式的描述,请参阅getDecomposition。

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

也可以看看:

setStrength

Added in API level 1
void setStrength (int newStrength)

设置此Collator的强度属性。 强度属性决定了比较过程中认为有意义的最小差异水平。 有关使用示例,请参阅Collator类描述。

Parameters
newStrength int: the new strength value.
Throws
IllegalArgumentException If the new strength value is not one of PRIMARY, SECONDARY, TERTIARY or IDENTICAL.

也可以看看:

Hooray!