|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjava.text.Collator
public abstract class Collator
Collator 类执行区分语言环境的 String 比较。使用此类可为自然语言文本构建搜索和排序例程。
Collator 是一个抽象基类。其子类实现具体的整理策略。Java 平台目前提供了 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 的类描述。
RuleBasedCollator,
CollationKey,
CollationElementIterator,
Locale
| 字段摘要 | |
|---|---|
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 转换为一系列可以和其他 CollationKey 按位进行比较的位。 |
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 |
| 字段详细信息 |
|---|
public static final int PRIMARY
setStrength(int),
getStrength(),
常量字段值
public static final int SECONDARY
setStrength(int),
getStrength(),
常量字段值
public static final int TERTIARY
setStrength(int),
getStrength(),
常量字段值
public static final int IDENTICAL
public static final int NO_DECOMPOSITION
getDecomposition(),
setDecomposition(int),
常量字段值
public static final int CANONICAL_DECOMPOSITION
CANONICAL_DECOMPOSITION 对应于 Unicode Technical Report #15 中所描述的 Normalization Form D。
getDecomposition(),
setDecomposition(int),
常量字段值
public static final int FULL_DECOMPOSITION
FULL_DECOMPOSITION 对应于 Unicode Technical Report #15 中所描述的 Normalization Form KD。
getDecomposition(),
setDecomposition(int),
常量字段值
| 构造方法详细信息 |
|---|
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)。
Comparator<Object> 中的
compare
o1 - 要比较的第一个对象。
o2 - 要比较的第二个对象。
ClassCastException - 无法将参数强制转换为 String。
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 - 新的 strength 值。
IllegalArgumentException - 如果新的 strength 值不是 PRIMARY、SECONDARY、TERTIARY 或 IDENTICAL 之一。
getStrength(),
PRIMARY,
SECONDARY,
TERTIARY,
IDENTICAL
public int getDecomposition()
用于 decomposition 模式的三个值是:
setDecomposition(int),
NO_DECOMPOSITION,
CANONICAL_DECOMPOSITION,
FULL_DECOMPOSITION
public void setDecomposition(int decompositionMode)
decompositionMode - 新的 decomposition 模式。
IllegalArgumentException - 如果给定值不是有效的 decomposition 模式。
getDecomposition(),
NO_DECOMPOSITION,
CANONICAL_DECOMPOSITION,
FULL_DECOMPOSITION
public static Locale[] getAvailableLocales()
getInstance 方法可为这些语言环境返回已本地化的实例。 返回的数组代表 Java 运行时和已安装的
CollatorProvider 实现所支持的语言环境的联合。它至少包含一个等同于
Locale.US 的 Locale 实例。
Collator 实例。
public Object clone()
Object 中的
clone
Cloneable
public boolean equals(Object that)
Comparator<Object> 中的
equals
Object 中的
equals
that - 要与此 Collator 进行比较的 Collator。
Object.hashCode(),
Hashtable
public abstract int hashCode()
Object 中的
hashCode
Object.equals(java.lang.Object),
Hashtable
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。