1

Java 国際化規則。交換しろって言う

s1.compareTo(s)==0

Collator.compare(s1,s2)<0

なぜ<0

4

2 に答える 2

5

Javadocに基づくと、これはタイプミスです。次のようにする必要があります==

整数値を返します。ソースがターゲットより小さい場合、値はゼロ未満、ソースとターゲットが等しい場合、値はゼロ、ソースがターゲットより大きい場合、値はゼロより大きい。

これは(リンクされた例が s を比較するため) のStringオーバーロード用ですが、メソッドの一般的なバージョンは同じように動作します。Collator.compareString

あなたが参照した記事は、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 に答える