- java.lang.Object
-
- java.text.Collator
-
- 实现的所有接口
-
Cloneable,Comparator<Object>
- 已知直接子类:
-
RuleBasedCollator
public abstract class Collator extends Object implements Comparator<Object>, Cloneable
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的强度属性,以确定在比较中被视为重要的差异水平。 提供四个优势: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"); }为了比较
Strings一次,compare方法提供了最佳性能。 但是,在对String的列表进行排序时,通常需要多次比较每个String。 在这种情况下,CollationKeys提供更好的性能。 所述CollationKey类转换String到一系列可以按位与其他进行比较的比特CollationKey秒。 甲CollationKey由创建Collator对象对于给定的String。
注:CollationKeys来自不同的Collators无法比较。 有关使用CollationKey的示例,请参阅CollationKey的类描述。- 从以下版本开始:
- 1.1
- 另请参见:
-
RuleBasedCollator,CollationKey,CollationElementIterator,Locale
-
-
字段汇总
字段 变量和类型 字段 描述 static intCANONICAL_DECOMPOSITION分解模式值。static intFULL_DECOMPOSITION分解模式值。static intIDENTICAL整理者实力值。static intNO_DECOMPOSITION分解模式值。static intPRIMARY整理者实力值。static intSECONDARY整理者实力值。static intTERTIARY整理者实力值。
-
构造方法摘要
构造方法 变量 构造器 描述 protectedCollator()默认构造函数。
-
方法摘要
所有方法 静态方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 Objectclone()覆盖Cloneableintcompare(Object o1, Object o2)比较它的两个参数的顺序。abstract intcompare(String source, String target)根据此Collator的排序规则将源字符串与目标字符串进行比较。booleanequals(Object that)比较两个Collators的平等性。booleanequals(String source, String target)基于此Collator的校对规则比较两个字符串相等性的便捷方法。static Locale[]getAvailableLocales()返回getInstance方法可以返回本地化实例的所有语言环境的数组。abstract CollationKeygetCollationKey(String source)将String转换为一系列位,可以按位与其他CollationKeys进行比较。intgetDecomposition()获取此Collator的分解模式。static CollatorgetInstance()获取当前默认语言环境的Collator。static CollatorgetInstance(Locale desiredLocale)获取所需语言环境的Collator。intgetStrength()返回此Collator的强度属性。abstract inthashCode()生成此Collator的哈希码。voidsetDecomposition(int decompositionMode)设置此Collator的分解模式。voidsetStrength(int newStrength)设置此Collator的强度属性。-
声明方法的接口 java.util.Comparator
reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
-
-
-
-
字段详细信息
-
PRIMARY
public static final int PRIMARY
整理者实力值。 设置后,在比较期间仅认为PRIMARY差异很大。 语言功能的优势分配取决于语言环境。 一个常见的例子是不同的基本字母(“a”与“b”)被认为是主要的差异。- 另请参见:
-
setStrength(int),getStrength(), 常数字段值
-
SECONDARY
public static final int SECONDARY
整理者实力值。 设置时,在比较期间仅认为SECONDARY和以上差异是显着的。 语言功能的优势分配取决于语言环境。 一个常见的例子是同一个基本字母(“a”vs“¤”)的不同重音形式被认为是次要的差异。- 另请参见:
-
setStrength(int),getStrength(), 常数字段值
-
TERTIARY
public static final int TERTIARY
整理者实力值。 设置后,在比较期间,只有TERTIARY和以上差异被认为是重要的。 语言功能的优势分配取决于语言环境。 一个常见的例子是案例差异(“a”与“A”)被视为第三方差异。- 另请参见:
-
setStrength(int),getStrength(), 常数字段值
-
IDENTICAL
public static final int IDENTICAL
整理者实力值。 设置后,所有差异在比较期间都被认为是显着的。 语言功能的优势分配取决于语言环境。 一个常见的例子是控制字符(“\ u0001”vs“\ u0002”)在PRIMARY,SECONDARY和TERTIARY级别被认为是相等的,但在IDENTICAL级别上是不同的。 此外,如果分解设置为NO_DECOMPOSITION,则预先组合的重音(如“\ u00C0”(A-grave)和组合重音如“A \ u0300”(A,组合 - 重音)之间的差异在IDENTICAL级别将被视为重要。- 另请参见:
- 常数字段值
-
NO_DECOMPOSITION
public static final int NO_DECOMPOSITION
分解模式值。 设置NO_DECOMPOSITION后,重音字符将不会被分解以进行整理。 这是默认设置,提供最快的排序规则,但只会为不使用重音的语言生成正确的结果。- 另请参见:
-
getDecomposition(),setDecomposition(int), 常数字段值
-
CANONICAL_DECOMPOSITION
public static final int CANONICAL_DECOMPOSITION
分解模式值。 通过设置CANONICAL_DECOMPOSITION,将根据Unicode标准对规范变体的字符进行分解以进行整理。 这应该用于获得重音字符的正确排序。CANONICAL_DECOMPOSITION对应于标准化形式D,如Unicode Technical Report #15中所述 。
- 另请参见:
-
getDecomposition(),setDecomposition(int), 常数字段值
-
FULL_DECOMPOSITION
public static final int FULL_DECOMPOSITION
分解模式值。 设置FULL_DECOMPOSITION后,将分解Unicode规范变体和Unicode兼容性变体以进行整理。 这不仅会导致重音字符被整理,还会导致具有特殊格式的字符与其标准形式进行整理。 例如,然后将半宽和全角ASCII和片假名字符整理在一起。 FULL_DECOMPOSITION是最完整的,因此也是最慢的分解模式。FULL_DECOMPOSITION对应于标准化表格KD,如Unicode Technical Report #15中所述 。
- 另请参见:
-
getDecomposition(),setDecomposition(int), 常数字段值
-
-
构造方法详细信息
-
Collator
protected Collator()
默认构造函数。 此构造函数受到保护,因此子类可以访问它。 用户通常通过调用工厂方法getInstance来创建Collator子类。- 另请参见:
-
getInstance()
-
-
方法详细信息
-
getInstance
public static Collator getInstance()
获取当前默认语言环境的Collator。 默认语言环境由java.util.Locale.getDefault确定。- 结果
- 默认语言环境的Collator。(例如,en_US)
- 另请参见:
-
Locale.getDefault()
-
getInstance
public static Collator getInstance(Locale desiredLocale)
获取所需语言环境的Collator。- 参数
-
desiredLocale- 所需的语言环境。 - 结果
- 所需语言环境的Collator。
- 另请参见:
-
Locale,ResourceBundle
-
compare
public abstract int compare(String source, String target)
根据此Collator的排序规则将源字符串与目标字符串进行比较。 返回小于,等于或大于零的整数,具体取决于源String是否小于,等于或大于目标字符串。 有关使用示例,请参阅Collator类描述。对于一次性比较,此方法具有最佳性能。 如果给定的String将涉及多个比较,则CollationKey.compareTo具有最佳性能。 有关使用CollationKeys的示例,请参阅Collator类说明。
- 参数
-
source- 源字符串。 -
target- 目标字符串。 - 结果
- 返回一个整数值。 如果source小于target,则值小于零,如果source和target相等,则值为零,如果source大于target,则value大于零。
- 另请参见:
-
CollationKey,getCollationKey(java.lang.String)
-
compare
public int compare(Object o1, Object o2)
比较它的两个参数的顺序。 返回负整数,零或正整数,因为第一个参数小于,等于或大于第二个参数。此实现仅返回
compare((String)o1, (String)o2)。- Specified by:
-
compare接口Comparator<Object> - 参数
-
o1- 要比较的第一个对象。 -
o2- 要比较的第二个对象。 - 结果
- 第一个参数的负整数,零或正整数小于,等于或大于第二个参数。
- 异常
-
ClassCastException- 参数不能ClassCastException为字符串。 - 从以下版本开始:
- 1.2
- 另请参见:
-
Comparator
-
getCollationKey
public abstract CollationKey getCollationKey(String source)
将String转换为一系列位,可以按位与其他CollationKeys进行比较。 当字符串涉及多个比较时,CollationKeys提供比Collator.compare更好的性能。 有关使用CollationKeys的示例,请参阅Collator类说明。- 参数
-
source- 要转换为归类键的字符串。 - 结果
- 基于此Collator的排序规则的给定String的CollationKey。 如果源String为null,则返回null CollationKey。
- 另请参见:
-
CollationKey,compare(java.lang.String, java.lang.String)
-
equals
public boolean equals(String source, String target)
基于此Collator的校对规则比较两个字符串相等性的便捷方法。- 参数
-
source- 要与之比较的源字符串。 -
target- 要与之比较的目标字符串。 - 结果
- 如果字符串根据排序规则相等则为true。 是假的,否则。
- 另请参见:
-
compare(java.lang.String, java.lang.String)
-
getStrength
public int getStrength()
返回此Collator的强度属性。 强度属性确定在比较期间认为重要的最小差异水平。 有关使用示例,请参阅Collator类描述。- 结果
- 这是Collator目前的实力资产。
- 另请参见:
-
setStrength(int),PRIMARY,SECONDARY,TERTIARY,IDENTICAL
-
setStrength
public void setStrength(int newStrength)
设置此Collator的强度属性。 强度属性确定在比较期间认为重要的最小差异水平。 有关使用示例,请参阅Collator类描述。- 参数
-
newStrength- 新的实力值。 - 异常
-
IllegalArgumentException- 如果新强度值不是PRIMARY,SECONDARY,TERTIARY或IDENTICAL之一。 - 另请参见:
-
getStrength(),PRIMARY,SECONDARY,TERTIARY,IDENTICAL
-
getDecomposition
public int getDecomposition()
获取此Collator的分解模式。 分解模式确定如何处理Unicode组合字符。 调整分解模式允许用户在更快和更完整的校对行为之间进行选择。分解模式的三个值是:
- NO_DECOMPOSITION,
- CANONICAL_DECOMPOSITION
- FULL_DECOMPOSITION。
- 结果
- 分解模式
- 另请参见:
-
setDecomposition(int),NO_DECOMPOSITION,CANONICAL_DECOMPOSITION,FULL_DECOMPOSITION
-
setDecomposition
public void setDecomposition(int decompositionMode)
设置此Collator的分解模式。 有关分解模式的说明,请参阅getDecomposition。- 参数
-
decompositionMode- 新的分解模式。 - 异常
-
IllegalArgumentException- 如果给定值不是有效的分解模式。 - 另请参见:
-
getDecomposition(),NO_DECOMPOSITION,CANONICAL_DECOMPOSITION,FULL_DECOMPOSITION
-
getAvailableLocales
public static Locale[] getAvailableLocales()
返回getInstance方法可以返回本地化实例的所有语言环境的数组。 返回的数组表示Java运行时和已安装的CollatorProvider实现支持的语言环境的并集 。 它必须至少包含一个等于Locale.US的Locale实例。- 结果
-
一组区域设置,其本地化的
Collator实例可用。
-
equals
public boolean equals(Object that)
比较两个Collators的平等性。- Specified by:
-
equals接口Comparator<Object> - 重写:
-
equals在课程Object - 参数
-
that- 要与此进行比较的Collator。 - 结果
- 如果此Collator与Collator相同,则为true; 否则是假的。
- 另请参见:
-
Object.hashCode(),HashMap
-
hashCode
public abstract int hashCode()
生成此Collator的哈希码。- 重写:
-
hashCode,类Object - 结果
- 此对象的哈希码值。
- 另请参见:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
-
-