- 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"); }
为了比较
String
s一次,compare
方法提供了最佳性能。 但是,在对String
的列表进行排序时,通常需要多次比较每个String
。 在这种情况下,CollationKey
s提供更好的性能。 所述CollationKey
类转换String
到一系列可以按位与其他进行比较的比特CollationKey
秒。 甲CollationKey
由创建Collator
对象对于给定的String
。
注:CollationKey
s来自不同的Collator
s无法比较。 有关使用CollationKey
的示例,请参阅CollationKey
的类描述。- 从以下版本开始:
- 1.1
- 另请参见:
-
RuleBasedCollator
,CollationKey
,CollationElementIterator
,Locale
-
-
字段汇总
字段 变量和类型 字段 描述 static int
CANONICAL_DECOMPOSITION
分解模式值。static int
FULL_DECOMPOSITION
分解模式值。static int
IDENTICAL
整理者实力值。static int
NO_DECOMPOSITION
分解模式值。static int
PRIMARY
整理者实力值。static int
SECONDARY
整理者实力值。static int
TERTIARY
整理者实力值。
-
构造方法摘要
构造方法 变量 构造器 描述 protected
Collator()
默认构造函数。
-
方法摘要
所有方法 静态方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 Object
clone()
覆盖Cloneableint
compare(Object o1, Object o2)
比较它的两个参数的顺序。abstract int
compare(String source, String target)
根据此Collator的排序规则将源字符串与目标字符串进行比较。boolean
equals(Object that)
比较两个Collators的平等性。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的强度属性。-
声明方法的接口 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)
-
-