关于类 java.text.Collator

类 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"); 

可以设置 Collatorstrength 特性以确定比较过程中被认为是重要的不同的级别。 提供了四种 strength 特性:PRIMARYSECONDARYTERTIARYIDENTICAL。 语言特征的确切的 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
注意: 来自不同的 CollatorCollationKey 不能比较。 请参阅关于 CollationKey的说明中使用 CollationKey 的例子。

 

参见:
RuleBasedCollator, CollationKey, CollationElementIterator, Locale

变量索引
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 属性。

变量
PRIMARY
 public static final int PRIMARY
整理程序的 strength 数值。 当设置时,在比较期间只有 PRIMARY 差别视为有效。 语言特征的 strength 特性的赋值依赖于语言环境。 一个普通的例子是,不同的基本字母 ("a" 和 "b") 被认为是一个 PRIMARY 差别。

 

参见:
setStrength, getStrength
SECONDARY
 public static final int SECONDARY
整理程序的 strength 数值。 当设置时,在比较期间只有 SECONDARY 及以上的差别视为有效。 语言特征的 strength 特性的赋值依赖于语言环境。 一个普通的例子是,相同的基本字母的不同的音调符号格式 ("a" 和 "?) 被认为是一个 SECONDARY 差别。

 

参见:
setStrength, getStrength
TERTIARY
 public static final int TERTIARY
整理程序的 strength 数值。 当设置时,在比较期间只有 TERTIARY 及以上的差别视为有效。 语言特征的 strength 特性的赋值依赖于语言环境。 一个普通的例子是,基本的差别 ("a" 和 "A") 被认为是一个 TERTIARY 差别。

 

参见:
setStrength, getStrength
IDENTICAL
 public static final int IDENTICAL
整理程序的 strength 数值。 当设置时,在比较期间所有的差别都视为有效。 语言特征的 strength 特性的赋值依赖于语言环境。 一个普通的例子是,控制字符 ("/u0001" 和 "/u0002") 在 PRIMARY、SECONDARY 和 TERTIARY 级别上视为相等,而在 IDENTICAL 级别上视为不等。另外,如果字符分解模式被设置为 NO_DECOMPOSITION,向前结合的音调符号,如 "/u00C0" ( 一个抑音 ) 和组合的音调符号,如 "A/u0300" ( 一个组合的抑音) 之间的差别在 tertiary 级别上被视为有效。

 

NO_DECOMPOSITION
 public static final int NO_DECOMPOSITION
字符分解模式数值。 如果设置了 NO_DECOMPOSITION,整理时重音字符不会被分解。这样可以提供快速的整理,但是这只对不使用音调符号的语言产生正确的结果。

 

参见:
getDecomposition, setDecomposition
CANONICAL_DECOMPOSITION
 public static final int CANONICAL_DECOMPOSITION
字符分解模式数值。 如果设置了 CANONICAL_DECOMPOSITION,符合 Unicode 2.0 的规范变形字符在整理时将被分解。 这是缺省的设置,可以用来对重音字符进行正确的整理。

 

参见:
getDecomposition, setDecomposition
FULL_DECOMPOSITION
 public static final int FULL_DECOMPOSITION
字符分解模式数值。 如果设置了 FULL_DECOMPOSITION,Unicode 的规范变体和与 Unicode 兼容的变体在整理时都将被分解。 这不仅整理重音字符,而且以各自的普通的形式整理具有特殊格式的字符。例如,半宽的和全宽的 ASCII 字符和片假名字符将一起整理。 FULL_DECOMPOSITION 是最完整的字符分解模式,因而也是最慢的字符分解模式。

 

参见:
getDecomposition, setDecomposition

构造子
Collator
 protected Collator()
缺省构造子。 该构造子是被保护的,以便使子类能够访问它。 用户通常通过调用工厂方法 getInstance 创建 Collator。

 

参见:
getInstance

方法
getInstance
 public static synchronized Collator getInstance()
获取当前缺省语言环境的 Collator。 缺省的语言环境由 java.util.Locale.getDefault 确定。

 

返回值:
缺省语言环境的 Collator。(例如,en_US)
参见:
getDefault
getInstance
 public static synchronized Collator getInstance(Locale desiredLocale)
获得期望的语言环境的 Collator。

 

参数:
desiredLocale - 期望的语言环境。
返回值:
期望的语言环境的 Collator。
参见:
Locale, ResourceBundle
compare
 public abstract int compare(String source,
                                   String target)
根据该 Collator 的整理规则将源字符串与目标字符串比较。 根据源 String 是小于、等于或大于目标字符串返回一个小于、等于或大于零的整数。参见 Collator 类说明的使用示例。

对于一次的比较,该方法具有最好的性能。 如果给定的 String 参与多次比较, CollationKey.compareTo 具有最好的性能。 参见 Collator 类说明的使用 CollationKeys 的例子。

 

参数:
source - 源字符串。
target - 目标字符串。
返回值:
返回一个整数值。如果源字符串小于目标字符串该值小于零,如果源字符串等于目标字符串该值等于零,如果源字符串大于目标字符串该值大于零。
参见:
CollationKey, getCollationKey
getCollationKey
 public abstract CollationKey getCollationKey(String source)
把字符串转换为一系列数位,它们可以以数位形式与 CollationKeys 相比较。 当 Strings 参与多次比较时,CollationKeys 提供了比 Collator.compare 更好的性能。 参见 Collator 类说明的使用 CollationKeys 的例子。

 

参数:
source - 要转换为一个整理键的字符串。
返回值:
基于该 Collator 的整理规则的给定的 String 的 CollationKey。如果源 String 为 null,返回一个 null CollationKey。
参见:
CollationKey, compare
equals
 public boolean equals(String source,
                                   String target)
根据该 Collator 的整理规则比较两个字符串是否相等的便捷方法。

 

参数:
source - 要比较的源字符串。
target - 要比较的目标字符串。
返回值:
根据整理规则,如果字符串相等则为 true。 否则为 false。
参见:
compare
getStrength
 public synchronized int getStrength()
返回该 Collator 的 strength 属性。 strength 属性确定了比较时视为有效的最小的差别级别。 参见 Collator 类说明的使用示例。

 

返回值:
该 Collator 当前的 strength 特性。
参见:
setStrength, PRIMARY, SECONDARY, TERTIARY, IDENTICAL
setStrength
 public synchronized void setStrength(int newStrength)
设置该 Collator 的 strength 属性。 strength 特性确定了比较时视为有效的最小的差别级别。 参见 Collator 类说明的使用示例。

 

参数:
newStrength - 新的 strength 值。
抛出: IllegalArgumentException
如果新的 strength 值不是 PRIMARY、SECONDARY、TERTIARY 或 IDENTICAL 之一。
参见:
getStrength, PRIMARY, SECONDARY, TERTIARY, IDENTICAL
getDecomposition
 public synchronized int getDecomposition()
获得该 Collator 的字符分解模式。 字符分解模式确定了如何处理 Unicode 组合字符。 调整字符分解模式允许用户在更快的和更完整的整理行为之间选择。

字符分解模式的三个值是:

  • NO_DECOMPOSITION,
  • CANONICAL_DECOMPOSITION
  • FULL_DECOMPOSITION.
请参阅这三个常量的文档的关于它们含义的说明。

 

返回值:
字符分解模式
参见:
setDecomposition, NO_DECOMPOSITION, CANONICAL_DECOMPOSITION, FULL_DECOMPOSITION
setDecomposition
 public synchronized void setDecomposition(int decompositionMode)
设置该 Collator 的字符分解模式。 请参阅 getDecomposition 关于字符分解模式的说明。

 

参数:
decompositionMode - 新的字符分解模式
抛出: IllegalArgumentException
如果给定的值不是一个有效的字符分解模式。
参见:
getDecomposition, NO_DECOMPOSITION, CANONICAL_DECOMPOSITION, FULL_DECOMPOSITION
getAvailableLocales
 public static synchronized Locale[] getAvailableLocales()
获得安装 Collators 的 Locale 集合。

 

返回值:
安装整理程序的可用的语言环境列表。
clone
 public Object clone()
覆盖 Cloneable

 

覆盖:
Object 中的 clone
equals
 public boolean equals(Object that)
比较两个 Collator 对象是否相等。

 

参数:
that - 与该 Collator 比较的 Collator。
返回值:
如果该 Collator 与 Collator 相同则为 true;否则为 false。
覆盖:
Object 中的 equals
hashCode
 public abstract int hashCode()
为该 Collator 对象生成散列码。

 

覆盖:
Object 中的 hashCode
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值