类 java.text.Collator
java.lang.Object | +----java.text.Collator
-
public abstract class
Collator
extends
Object
implements
Cloneable,
Serializable
下列类的父类:
- RuleBasedCollator
Collator
执行国别敏感的 String
比较。使用该类为自然语言文本创建搜索和排序例程。
Collator
是一个抽象基类。 子类实现特定的整理策略。 一个由当前 JDK 提供的子类 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" 被认为是基本差别,而 "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"); }
compare
方法为一次比较 String
提供了最好的性能。 但是,当对一个 String
列表进行排序时,通常需要多次比较一个 String
。在这种情况下,CollationKey
提供了更好的性能。 CollationKey
类将一个 String
转换为一系列数位,它们可以以数位形式与其它的 CollationKey
进行比较。 Collator
对象为给定的 String
创建 CollationKey
。
注意: 来自不同的 Collator
的 CollationKey
不能比较。 请参阅关于 CollationKey
的说明中使用 CollationKey
的例子。
变量索引
-
CANONICAL_DECOMPOSITION
- 字符分解模式数值。 FULL_DECOMPOSITION
- 字符分解模式数值。 IDENTICAL
- 整理程序的 strength 数值。 NO_DECOMPOSITION
- 字符分解模式数值。 PRIMARY
- 整理程序的 strength 数值。 SECONDARY
- 整理程序的 strength 数值。 TERTIARY
- 整理程序的 strength 数值。
构造子索引
-
Collator()
- 缺省构造子。
方法索引
-
clone()
- 覆盖 Cloneable compare(String, String)
- 根据该 Collator 的整理规则将源字符串与目标字符串比较。 equals(Object)
- 比较两个 Collator 对象是否相等。 equals(String, String)
- 根据该 Collator 的整理规则比较两个字符串是否相等的便捷方法。 getAvailableLocales()
- 获得安装 Collators 的 Locale 集合。 getCollationKey(String)
- 把字符串转换为一系列比特,它们可以以比特形式与 CollationKeys 相比较。 getDecomposition()
- 获得该 Collator 的字符分解模式。 getInstance()
- 获取当前缺省语言环境的 Collator。 getInstance(Locale)
- 获取指定语言环境的 Collator。 getStrength()
- 返回该 Collator 的 strength 属性。 hashCode()
- 为该 Collator 对象生成散列码。 setDecomposition(int)
- 设置该 Collator 的字符分解模式。 setStrength(int)
- 设置该 Collator 的 strength 属性。
变量
PRIMARYpublic static final int PRIMARY
-
整理程序的 strength 数值。 当设置时,在比较期间只有 PRIMARY 差别视为有效。 语言特征的 strength 特性的赋值依赖于语言环境。 一个普通的例子是,不同的基本字母 ("a" 和 "b") 被认为是一个 PRIMARY 差别。
-
-
参见:
- setStrength, getStrength
public static final int SECONDARY
-
整理程序的 strength 数值。 当设置时,在比较期间只有 SECONDARY 及以上的差别视为有效。 语言特征的 strength 特性的赋值依赖于语言环境。 一个普通的例子是,相同的基本字母的不同的音调符号格式 ("a" 和 "?) 被认为是一个 SECONDARY 差别。
-
-
参见:
- setStrength, getStrength
public static final int TERTIARY
-
整理程序的 strength 数值。 当设置时,在比较期间只有 TERTIARY 及以上的差别视为有效。 语言特征的 strength 特性的赋值依赖于语言环境。 一个普通的例子是,基本的差别 ("a" 和 "A") 被认为是一个 TERTIARY 差别。
-
-
参见:
- setStrength, getStrength
public static final int IDENTICAL
-
整理程序的 strength 数值。 当设置时,在比较期间所有的差别都视为有效。 语言特征的 strength 特性的赋值依赖于语言环境。 一个普通的例子是,控制字符 ("/u0001" 和 "/u0002") 在 PRIMARY、SECONDARY 和 TERTIARY 级别上视为相等,而在 IDENTICAL 级别上视为不等。另外,如果字符分解模式被设置为 NO_DECOMPOSITION,向前结合的音调符号,如 "/u00C0" ( 一个抑音 ) 和组合的音调符号,如 "A/u0300" ( 一个组合的抑音) 之间的差别在 tertiary 级别上被视为有效。
public static final int NO_DECOMPOSITION
-
字符分解模式数值。 如果设置了 NO_DECOMPOSITION,整理时重音字符不会被分解。这样可以提供快速的整理,但是这只对不使用音调符号的语言产生正确的结果。
public static final int CANONICAL_DECOMPOSITION
-
字符分解模式数值。 如果设置了 CANONICAL_DECOMPOSITION,符合 Unicode 2.0 的规范变形字符在整理时将被分解。 这是缺省的设置,可以用来对重音字符进行正确的整理。
public static final int FULL_DECOMPOSITION
-
字符分解模式数值。 如果设置了 FULL_DECOMPOSITION,Unicode 的规范变体和与 Unicode 兼容的变体在整理时都将被分解。 这不仅整理重音字符,而且以各自的普通的形式整理具有特殊格式的字符。例如,半宽的和全宽的 ASCII 字符和片假名字符将一起整理。 FULL_DECOMPOSITION 是最完整的字符分解模式,因而也是最慢的字符分解模式。
构造子
Collatorprotected Collator()
-
缺省构造子。 该构造子是被保护的,以便使子类能够访问它。 用户通常通过调用工厂方法 getInstance 创建 Collator。
-
-
参见:
- getInstance
方法
getInstancepublic static synchronized Collator getInstance()
-
获取当前缺省语言环境的 Collator。 缺省的语言环境由 java.util.Locale.getDefault 确定。
-
-
返回值:
- 缺省语言环境的 Collator。(例如,en_US) 参见:
- getDefault
public static synchronized Collator getInstance(Locale desiredLocale)
-
获得期望的语言环境的 Collator。
-
-
参数:
- desiredLocale - 期望的语言环境。 返回值:
- 期望的语言环境的 Collator。 参见:
- Locale, ResourceBundle
public abstract int compare(String source, String target)
-
根据该 Collator 的整理规则将源字符串与目标字符串比较。 根据源 String 是小于、等于或大于目标字符串返回一个小于、等于或大于零的整数。参见 Collator 类说明的使用示例。
对于一次的比较,该方法具有最好的性能。 如果给定的 String 参与多次比较, CollationKey.compareTo 具有最好的性能。 参见 Collator 类说明的使用 CollationKeys 的例子。
-
-
参数:
- source - 源字符串。
- target - 目标字符串。 返回值:
- 返回一个整数值。如果源字符串小于目标字符串该值小于零,如果源字符串等于目标字符串该值等于零,如果源字符串大于目标字符串该值大于零。 参见:
- CollationKey, getCollationKey
public abstract CollationKey getCollationKey(String source)
-
把字符串转换为一系列数位,它们可以以数位形式与 CollationKeys 相比较。 当 Strings 参与多次比较时,CollationKeys 提供了比 Collator.compare 更好的性能。 参见 Collator 类说明的使用 CollationKeys 的例子。
-
-
参数:
- source - 要转换为一个整理键的字符串。 返回值:
- 基于该 Collator 的整理规则的给定的 String 的 CollationKey。如果源 String 为 null,返回一个 null CollationKey。 参见:
- CollationKey, compare
public boolean equals(String source, String target)
-
根据该 Collator 的整理规则比较两个字符串是否相等的便捷方法。
-
-
参数:
- source - 要比较的源字符串。
- target - 要比较的目标字符串。 返回值:
- 根据整理规则,如果字符串相等则为 true。 否则为 false。 参见:
- compare
public synchronized int getStrength()
-
返回该 Collator 的 strength 属性。 strength 属性确定了比较时视为有效的最小的差别级别。 参见 Collator 类说明的使用示例。
-
-
返回值:
- 该 Collator 当前的 strength 特性。 参见:
- setStrength, PRIMARY, SECONDARY, TERTIARY, IDENTICAL
public synchronized void setStrength(int newStrength)
-
设置该 Collator 的 strength 属性。 strength 特性确定了比较时视为有效的最小的差别级别。 参见 Collator 类说明的使用示例。
-
-
参数:
- newStrength - 新的 strength 值。 抛出: IllegalArgumentException
- 如果新的 strength 值不是 PRIMARY、SECONDARY、TERTIARY 或 IDENTICAL 之一。 参见:
- getStrength, PRIMARY, SECONDARY, TERTIARY, IDENTICAL
public synchronized int getDecomposition()
-
获得该 Collator 的字符分解模式。 字符分解模式确定了如何处理 Unicode 组合字符。 调整字符分解模式允许用户在更快的和更完整的整理行为之间选择。
字符分解模式的三个值是:
- NO_DECOMPOSITION,
- CANONICAL_DECOMPOSITION
- FULL_DECOMPOSITION.
-
-
返回值:
- 字符分解模式 参见:
- setDecomposition, NO_DECOMPOSITION, CANONICAL_DECOMPOSITION, FULL_DECOMPOSITION
public synchronized void setDecomposition(int decompositionMode)
-
设置该 Collator 的字符分解模式。 请参阅 getDecomposition 关于字符分解模式的说明。
-
-
参数:
- decompositionMode - 新的字符分解模式 抛出: IllegalArgumentException
- 如果给定的值不是一个有效的字符分解模式。 参见:
- getDecomposition, NO_DECOMPOSITION, CANONICAL_DECOMPOSITION, FULL_DECOMPOSITION
public static synchronized Locale[] getAvailableLocales()
-
获得安装 Collators 的 Locale 集合。
-
-
返回值:
- 安装整理程序的可用的语言环境列表。
public Object clone()equals
public boolean equals(Object that)
-
比较两个 Collator 对象是否相等。
public abstract int hashCode()