|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.text
类 Collator
java.lang.Object java.text.Collator
- 所有已实现的接口:
- Cloneable, Comparator<Object>
- 直接已知子类:
- RuleBasedCollator
-
public abstract class Collator
- extends Object
- implements Comparator<Object>, Cloneable
Collator
类执行区分语言环境的 String
比较。使用此类可为自然语言文本构建搜索和排序例程。
Collator
是一个抽象基类。其子类实现具体的整理策略。Java 2 平台目前提供了 RuleBasedCollator
子类,它适用于很多种语言。还可以创建其他子类,以处理更多的专门需要。
与其他区分语言环境的类一样,可以使用静态工厂方法 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
的 strength 属性来确定比较中认为显著的差异级别。提供了四种 strength:PRIMARY
、SECONDARY
、TERTIARY
和 IDENTICAL
。对语言特征的确切 strength 赋值和语言环境相关。例如在捷克语中,"e" 和 "f" 被认为是 PRIMARY 差异,而 "e" 和 "?" 则是 SECONDARY 差异,"e" 和 "E" 是 TERTIARY 差异,"e" 和 "e" 是 IDENTICAL。下面的示例显示了如何针对美国英语忽略大小写和重音。
//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
所创建的。
注:不能比较由不同 Collator
创建的 CollationKey
。有关使用 CollationKey
的示例,请参阅 CollationKey
的类描述。
字段摘要 | |
---|---|
static int |
CANONICAL_DECOMPOSITION Decomposition 模式值。 |
static int |
FULL_DECOMPOSITION Decomposition 模式值。 |
static int |
IDENTICAL Collator 的 strength 值。 |
static int |
NO_DECOMPOSITION Decomposition 模式值。 |
static int |
PRIMARY Collator 的 strength 值。 |
static int |
SECONDARY Collator 的 strength 值。 |
static int |
TERTIARY Collator 的 strength 值。 |
构造方法摘要 | |
---|---|
protected |
Collator() 默认的构造方法。 |
方法摘要 | |
---|---|
Object |
clone() 重写 Cloneable |
int |
compare(Object o1, Object o2) 比较此方法两个参数的顺序。 |
abstract int |
compare(String source, String target) 根据此 Collator 的整理规则来比较源字符串和目标字符串。 |
boolean |
equals(Object that) 比较两个 Collator 的相等性。 |
boolean |
equals(String source, String target) 根据此 Collator 的整理规则比较两个字符串是否相等的便捷方法。 |
static Locale[] |
getAvailableLocales() 返回一个所有语言环境的数组,此类的 getInstance 方法可为这些语言环境返回已本地化的实例。 |
abstract CollationKey |
getCollationKey(String source) 将该 String 转换为一系列可以和其他 CollationKeys 按位进行比较的位。 |
int |
getDecomposition() 获得此 Collator 的 decomposition 模式。 |
static Collator |
getInstance() 获得当前默认语言环境的 Collator。 |
static Collator |
getInstance(Locale desiredLocale) 获得所需语言环境的 Collator。 |
int |
getStrength() 返回此 Collator 的 strength 属性。 |
abstract int |
hashCode() 生成此 Collator 的哈希码。 |
void |
setDecomposition(int decompositionMode) 设置此 Collator 的 decomposition 模式。 |
void |
setStrength(int newStrength) 设置此 Collator 的 strength 属性。 |
从类 java.lang.Object 继承的方法 |
---|
finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
PRIMARY
public static final int PRIMARY
-
Collator 的 strength 值。设置该值后,比较期间仅将 PRIMARY 的差异视为显著的。对语言特征的 strength 赋值和语言环境相关。常见的例子是将不同的基本字母("a" 和 "b")视为 PRIMARY 差异。
- 另请参见:
-
setStrength(int)
,getStrength()
, 常量字段值
SECONDARY
public static final int SECONDARY
-
Collator 的 strength 值。设置该值后,比较期间仅将 SECONDARY 的差异视为显著的。对语言特征的 strength 赋值和语言环境相关。常见的例子是将相同基本字母的不同重音形式("a" 和 "?")视为 SECONDARY 差异。
- 另请参见:
-
setStrength(int)
,getStrength()
, 常量字段值
TERTIARY
public static final int TERTIARY
-
Collator 的 strength 值。设置该值后,比较期间仅将 TERTIARY 及以上的差异视为显著的。对语言特征的 strength 赋值和语言环境相关。常见的例子是将大小写差异(如 "a" 和 "A")视为 TERTIARY 差异。
- 另请参见:
-
setStrength(int)
,getStrength()
, 常量字段值
IDENTICAL
public static final int IDENTICAL
-
Collator 的 strength 值。设置该值后,比较期间将所有的差异都视为显著的。对语言特征的 strength 赋值和语言环境相关。常见的例子是控制字符("\u0001" 和 "\u0002")在 PRIMARY、SECONDARY 和 TERTIARY 级别视为相等的,但在 IDENTICAL 级别则是不同的。另外,如果将 decomposition 设置为 NO_DECOMPOSITION,则像 "\u00C0"(A-重音)的前构重音和像 "A\u0300"(A,组合重音)的组合重音将在 IDENTICAL 级别被视为是显著差异。
- 另请参见:
- 常量字段值
NO_DECOMPOSITION
public static final int NO_DECOMPOSITION
- Decomposition 模式值。设置为 NO_DECOMPOSITION 时,不会为了整理而分解重音字符。这是默认的设置并可提供最快的整理,但是仅对那些不使用重音的语言才能得出正确的结果。
CANONICAL_DECOMPOSITION
public static final int CANONICAL_DECOMPOSITION
-
Decomposition 模式值。设置为 CANONICAL_DECOMPOSITION 时,将为整理而分解那些根据 Unicode 标准为规范变体的字符。要获得重音字符的正确整理,应该使用该值。
CANONICAL_DECOMPOSITION 对应于 Unicode Technical Report #15 中所描述的 Normalization Form D。
FULL_DECOMPOSITION
public static final int FULL_DECOMPOSITION
-
Decomposition 模式值。设置为 FULL_DECOMPOSITION 时,将为整理而分解 Unicode 规范变体和 Unicode 兼容变体。这样就不仅能排序重音字符,而且对于具有特殊格式的字符,也能够使用其标准化形式进行排序。例如,半角和全角的 ASCII 字符与片假名字符就能一同排序了。FULL_DECOMPOSITION 是最完整的,因此也是最慢的 decomposition 模式。
FULL_DECOMPOSITION 对应于 Unicode Technical Report #15 中所描述的 Normalization Form KD。
构造方法详细信息 |
---|
Collator
protected Collator()
-
默认的构造方法。此构造方法是受保护的,所以子类可以访问它。用户通常调用 getInstance 工厂方法来创建一个 Collator 子类。
- 另请参见:
-
getInstance()
方法详细信息 |
---|
getInstance
public static Collator getInstance()
- 获得当前默认语言环境的 Collator。通过 java.util.Locale.getDefault 来确定默认的语言环境。
-
-
- 返回:
- 默认语言环境(例如 en_US)的 Collator。
- 另请参见:
-
Locale.getDefault()