在Java中,是否需要一个精确的utf-8字符串匹配的Collat​​or?

时间:2011-07-13 14:21:07

标签: java utf-8 internationalization

在java中比较两个utf-8字符串(一个是文本,另一个是要查找的模式)以进行精确匹配时,是否需要使用Collat​​or或者它是否足以规范化两个字符串并使用简单的char比较?

有关国际化文本搜索和Collat​​ors使用的更多信息,请查看http://www.developertutorials.com/tutorials/java/text-searching-java-050524-1453/

示例:在西班牙语中,“ch”可以是单个字母,而英语是2个字母。所以“恰帕斯”这个词可能看起来一样,但如果不加以考虑,那么比赛就会失败。

4 个答案:

答案 0 :(得分:3)

如果您搜索完全匹配,我认为标准化就足够了。如果仅有Collator差异有意义,则需要Collator.PRIMARY

答案 1 :(得分:1)

String.equals已经进行了char-by-char比较,因此对于完全匹配(即不考虑normalization等),您可以使用它。

答案 2 :(得分:0)

只需使用String.equals()

FYI String.getBytes()方法returns an array of bytes in UTF-8 format,但这与比较“完全匹配”无关 - 这就是String.equals(String)的作用。

答案 3 :(得分:0)

Collat​​ors用于分类。 String.equals()用于相等比较。