2

重複の可能性:
Javaで文字列を比較するにはどうすればよいですか?

このかなり単純な質問でごめんなさい。私はこの非常に単純なJavaプログラムを持っています:

public class ArgIt {
    public static void main(String[] args){
            if(args[0].equals("x")) System.out.print("x");
            if(args[0] == "x") System.out.println("x2 ");
    }
}

プログラムを>javaArgIt xと呼ぶと、単一のxのみが出力されます。他の状況でプログラムが文字列の==を確認しないのはなぜですか?

4

3 に答える 3

6

equals()Java では、s間の等価性を比較するために使用する必要がありますStringID==のテスト、別の概念。

2 つのオブジェクトは等しい場合がありますが、同一ではありません。一方、2 つのオブジェクトが同一である場合、それらが等しいことを意味します。

equals()2 つのオブジェクトは、メモリ内の同じアドレスを物理的に指している場合は同一です。一方、2 つのオブジェクトは、プログラマがメソッドで定義したように、同じ値を持っている場合は同等です。一般に、2 つのオブジェクトが等しいかどうかを調べることに関心があります。

于 2012-05-10T14:11:39.807 に答える
3

==ポインターが等しいかどうかをテストします。.equals値が等しいかどうかをテストするために存在します。

于 2012-05-10T14:11:52.240 に答える
0

Java では==、参照 (オブジェクトの場合) が同じメモリ位置を指しているように、演算子と比較すると同一性がチェックされます。このため、プリミティブ ( 、、など) は参照ではなく値によって格納されるため、==演算子を使用してプリミティブのみを比較する必要があります。intlongboolean

つまり、equalsメソッドを使用してオブジェクトを比較し、==演算子を使用してプリミティブを比較します。

于 2012-05-10T14:14:02.773 に答える