public abstract class Collator extends Object implements Comparator<Object>, Cloneable
Collator类执行区域设置敏感String比较。
您使用此类来构建自然语言文本的搜索和排序例程。
Collator是一个抽象基类。 子类实现特定的整理策略。 一个子类, RuleBasedCollator ,目前提供了Java平台,适用于广泛的语言。 可以创建其他子类来处理更专门的需求。
像其他语言环境敏感类,你可以使用静态工厂方法, getInstance ,以获得适当Collator对象为给定的语言环境。 您只需要查看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的强度属性来确定在比较中被认为是显着的差异水平。 提供四个优势: PRIMARY , SECONDARY , TERTIARY和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进行比较。 A CollationKey由给定的String的Collator对象创建。
注意: CollationKey从不同的Collator s不能比较。 请参阅类描述CollationKey用于使用例如CollationKey秒。
RuleBasedCollator , CollationKey , CollationElementIterator , Locale
| Modifier and Type | Field and Description |
|---|---|
static int |
CANONICAL_DECOMPOSITION
分解模式值。
|
static int |
FULL_DECOMPOSITION
分解模式值。
|
static int |
IDENTICAL
整理器强度值。
|
static int |
NO_DECOMPOSITION
分解模式值。
|
static int |
PRIMARY
整理器强度值。
|
static int |
SECONDARY
整理器强度值。
|
static int |
TERTIARY
整理器强度值。
|
| Modifier | Constructor and Description |
|---|---|
protected |
Collator()
默认构造函数。
|
| Modifier and Type | Method and Description |
|---|---|
Object |
clone()
覆盖可克隆
|
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的分解模式。
|
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的强度属性。
|
finalize, getClass, notify, notifyAll, toString, wait, wait, waitcomparing, comparing, comparingDouble, comparingInt, comparingLong, naturalOrder, nullsFirst, nullsLast, reversed, reverseOrder, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLongpublic static final int PRIMARY
public static final int SECONDARY
public static final int TERTIARY
public static final int IDENTICAL
public static final int NO_DECOMPOSITION
public static final int CANONICAL_DECOMPOSITION
CANONICAL_DECOMPOSITION对应于标准化形式D,如Unicode Technical Report #15 所述 。
public static final int FULL_DECOMPOSITION
FULL_DECOMPOSITION对应于归一化形式KD,如Unicode Technical Report #15 所述 。
protected Collator()
getInstance()
public static Collator getInstance()
Locale.getDefault()
public static Collator getInstance(Locale desiredLocale)
desiredLocale - 所需的语言环境。
Locale , ResourceBundle
public abstract int compare(String source, String target)
对于一次比较,该方法具有最佳性能。 如果给定的String参与多个比较,CollationKey.compareTo具有最佳性能。 有关使用CollationKeys的示例,请参阅Collator类描述。
source - 源字符串。
target - 目标字符串。
CollationKey , getCollationKey(java.lang.String)
public int compare(Object o1, Object o2)
这个实现只返回compare((String)o1, (String)o2) 。
compare在接口
Comparator<Object>
o1 - 要比较的第一个对象。
o2 - 要比较的第二个对象。
ClassCastException - 无法将参数转换为字符串。
Comparator
public abstract CollationKey getCollationKey(String source)
source - 要转换为归类密钥的字符串。
CollationKey , compare(java.lang.String, java.lang.String)
public boolean equals(String source, String target)
source - 要比较的源字符串。
target - 要比较的目标字符串。
compare(java.lang.String, java.lang.String)
public int getStrength()
setStrength(int) ,
PRIMARY ,
SECONDARY ,
TERTIARY ,
IDENTICAL
public void setStrength(int newStrength)
newStrength - 新的实力值。
IllegalArgumentException - 如果新的实力值不是PRIMARY,SECONDARY,TERTIARY或IDENTICAL之一。
getStrength() ,
PRIMARY ,
SECONDARY ,
TERTIARY ,
IDENTICAL
public int getDecomposition()
分解模式的三个值为:
setDecomposition(int) ,
NO_DECOMPOSITION ,
CANONICAL_DECOMPOSITION ,
FULL_DECOMPOSITION
public void setDecomposition(int decompositionMode)
decompositionMode - 新的分解模式。
IllegalArgumentException - 如果给定值不是有效的分解模式。
getDecomposition() ,
NO_DECOMPOSITION ,
CANONICAL_DECOMPOSITION ,
FULL_DECOMPOSITION
public static Locale[] getAvailableLocales()
getInstance方法可以返回本地化实例。
返回的数组表示由Java运行时支持的语言环境和安装的CollatorProvider 实现的联合。
它必须至少包含一个等于Locale.US的语言环境实例。
Collator实例可用。
public boolean equals(Object that)
equals中的
Comparator<Object>
equals在
Object
that - 与此进行比较的Collator。
Object.hashCode() , HashMap
public abstract int hashCode()
hashCode在
Object
Object.equals(java.lang.Object) ,
System.identityHashCode(java.lang.Object)
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.