在java中比较两个utf-8字符串(一个是文本,另一个是要查找的模式)以进行精确匹配时,是否需要使用Collator或者它是否足以规范化两个字符串并使用简单的char比较?
有关国际化文本搜索和Collators使用的更多信息,请查看http://www.developertutorials.com/tutorials/java/text-searching-java-050524-1453/
示例:在西班牙语中,“ch”可以是单个字母,而英语是2个字母。所以“恰帕斯”这个词可能看起来一样,但如果不加以考虑,那么比赛就会失败。
答案 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)
Collators用于分类。 String.equals()用于相等比较。