0

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

String.valueOfを使用してcharをstringに変換しています。ただし、戻り値は同じ文字の文字列とまったく同じではないようです。以下のコード:

    String myString = "s";
    char myChar = 's';//both string and char are assigned as letter 's'

    String stringFromChar = String.valueOf(myChar);

    if (myString == stringFromChar) {
        out.println("equal");
    } else {
        out.println("not equal");
    }

印刷するたびに等しくありません。助けてください、ありがとう!:)

4

3 に答える 3

5

==実際の値ではなく、参照を比較してください。を使用equalsして値を比較する必要があります。

明確でシンプルなため、理解できない場合は、この記事をお読みください。

于 2013-01-15T01:47:06.153 に答える
2

これをもう一度やらないでください!!! 約束して!!!= P

文字列を常に比較する場合は、常に、常にequalsメソッドを使用してください。下記参照!

    String myString = "s";
    char myChar = 's';//both string and char are assigned as letter 's'

    String stringFromChar = String.valueOf(myChar);

    if (myString.equals(stringFromChar)) {
        System.out.println("equal");
    } else {
        System.out.println("not equal");
    }
}
于 2013-01-15T01:45:48.960 に答える
1

文字を文字列に変換するとどうなりますか?

さて、あなたはString.valueOf(char)メソッドを使用していますが、そのjavadocには変換方法が記載されていません。Stringしかし、あなたが見ている動作は、メソッドを呼び出すたびに、使用している JVM が新しいオブジェクトを作成することを強く示唆しています。

しかし、あなたはこの出来事に依存するべきです。

肝心なのは、文字列を比較するには常にメソッドを使用する必要があるということです。equals文字列を比較すると、==多くの場合、偽陰性が得られます...文字列がどのように作成/取得されたかによって異なります。あなたはそれに噛まれただけです。学び。

参照:

于 2013-01-15T01:50:36.447 に答える