1

Java 国际化规则。说要换

s1.compareTo(s)==0

Collator.compare(s1,s2)<0

为什么<0

4

2 回答 2

5

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

返回一个整数值。如果源小于目标,则值小于零,如果源和目标相等,则值为零,如果源大于目标,则值大于零。

这是为了String重载Collator.compare(因为链接的示例比较了Strings),但该方法的一般版本的行为方式相同。

您引用的文章间接链接到Java 教程的相应页面,该页面描述的行为与上述一致。

于 2012-06-15T07:30:54.420 回答
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;
        }
    }
}
于 2012-06-15T07:33:27.040 回答