0

文字列圧縮に使われる文字列比較の方法を調べていて、デコンパイラで文字列クラスを調べていたら、基本的に4つの方法があることがわかりました

equals()
equalsIgnoreCase()
compareTo()
compareToIgnore()

ここで、使用する 2 つのメソッド equals() と compareTo() の違いを知りたいのですが、基本的に、文字列クラスがこれらの両方のメソッドを保持していた理由を教えてください..

String tv = "Bravia";
        String television = "Bravia";

        // String compare example using equals
        if (tv.equals(television)) {
            System.out.println("Both tv and television contains same letters and equal by equals method of String");
        }

        // String compare example in java using compareTo
        if (tv.compareTo(television) == 0) {
            System.out.println("Both tv and television are equal using compareTo method of String");
        }

出力:-

Both tv and television contains same letters and equal by equals method of String
Both tv and television are equal using compareTo method of String
4

5 に答える 5

2

equals()を返しますbooleantrue/ false. 文字列 A は B と等しいですか?

compareTo()文字列が等しいかどうかだけでなく、どちらが他方より「低い」かを表す整数を返します。「低い」は自然なアルファベット順として定義されます。

2 つの文字列aおよびの場合ba.equals(b)が である場合のみ真a.compareTo(b)です0

例えば:

String a = "String1";
String b = "String2";

a.compareTo(b)-1アルファベット順で、文字列 "String1" は "String2" よりも小さいため、負の整数を返します (必ずしも!)。2 つの文字列を昇順に並べ替えると、"String1" が最初になります。また、文字列が等しくないため、a.equals(b)が返されます。false

でも:

String a = "Example";
String b = "Example";

この場合、(文字列が等しいため)がa.compareTo(b)返され、(文字列が等しいため)が返されます。0a.equals(b)true

「ignoreCase」バリアントに関して:

String a = "String1";
String b = "string1";

この場合、;a.compareToIgnoreCase(b)を返します。0これは、大文字と小文字を区別しないと、2 つの文字列が同一になるためです。また、同じ理由でa.equalsIgnoreCase(b)を返します。0

于 2013-02-17T06:43:20.943 に答える
1

equals「一方が他方と等しいか、そうでないか」という値を返しequalsIgnoreCaseますboolean

compareToトライcompareToIgnoreCase()ステート整数0、、または-11

  • 0それぞれの順序を比較して等しい場合
  • 1への引数がcompareTo*()、呼び出すオブジェクトの序数よりも大きいcompareTo*()場合
  • -1への引数compareTo*()の序数が、呼び出したオブジェクトよりも小さい場合compareTo*()
于 2013-02-17T06:44:20.600 に答える
0

両方の方法が必要です。String は Object から equals を継承し、Comparable インターフェイスを実装する場合は compareTo が必要です。

于 2013-02-17T06:45:42.987 に答える
0

文字列は Comparable インターフェイスを実装してから、compareTo メソッドを実装するようにバインドされます。

互換性のあるインターフェース

オブジェクトがソートされたコレクションに含まれている場合、オブジェクトの順序付けが容易になります。したがって、ソートされたコレクション(TreeSetなど)に文字列を配置する場合、オブジェクトをソートする方法をJavaにどのように伝えるのでしょうか。そこに coompareTo() メソッドが登場します。オブジェクトをソートするためにコレクションによって使用されます。

String tv = "Bravia";
    String television = "Bravia";

    // String compare example using equals
    if (tv.equals(television)) {
        System.out.println("Both tv and television contains same letters and equal by equals method of String");
    }

    // String compare example in java using compareTo
    if (tv.compareTo(television) == 0) {
        System.out.println("Both tv and television are equal using compareTo method of String");
    }

    if (tv.compareTo(television) < 0){

    System.out.println("tv comes before  using compareTo method of String");
    }

if (tv.compareTo(television) > 0){

    System.out.println("tv comes after using compareTo method of String");
    }
于 2013-02-17T06:49:13.927 に答える
0

compareTo(): このオブジェクトが指定されたオブジェクトより小さい、等しい、または大きいため、負の整数、ゼロ、または正の整数を返します。compareTo()から

equals(): equals() メソッドは、2 つのオブジェクトが等しいかどうかを比較し、等しい場合は true を返し、そうでない場合は false を返します

于 2013-02-17T06:49:23.970 に答える