java国际化规则

时间:2012-06-15 07:28:18

标签: java localization internationalization compare string-comparison

Java Internationalization Rules。它说要替换

s1.compareTo(s)==0

Collator.compare(s1,s2)<0

为什么<0

2 个答案:

答案 0 :(得分:5)

基于the Javadoc,这是一个错字 - 应该是==

  

返回一个整数值。如果source小于target,则值小于零,如果source和target相等则value为零,如果source大于target,则value大于零。

这适用于String的{​​{1}}重载(因为链接的示例会比较Collator.compare s),但the general version of the method的行为方式相同。

您引用的文章间接链接到the corresponding page of the Java Tutorial,其中描述的行为与上述内容一致。

答案 1 :(得分:0)

当我看到下一点时,我不确定你应该依赖这个网站......它会创建一个总是返回0的整理器。

package com.rule;
public class Do_not_use_String_compareToIgnoreCase_correction
{
    public void method()
    {
        new MyCollator().compare("String", "String"); // CORRECTION
    }

    class MyCollator extends java.text.Collator
    {
        public int compare(String source, String target)
        {
            return 0;
        }
        public java.text.CollationKey getCollationKey(String source)
        {
            return null;
        }
        public int hashCode()
        {
            return 0;
        }
    }
}