0

JLabel がテレビ番組の名前と同じかどうかを確認します。

私はコードを持っています

public int lastEp() {
    if(name.getText() == "Dexter") {
        switch (season) {
        case 1:
            return 12;
        case 2:
            return 12;
        // etc.
        }
    }
    return -1;
}

コンソールで何を取得したかを確認しましたがname.getText()、コンソールには「Dexter」と出力されます。それでも私のifステートメントはtrueを返しません。 System.out.println(name.getText() == "Dexter")false を返し、System.out.println(name.getText() + " " + "Dexter")「Dexter Dexter」を返します。何が起こっている?

また、おまけの質問です。従うべき適切な基準がある場合、他のオプションが適合しない場合に -1 の代わりに何を返す必要があるかを誰かが知っている場合。

4

1 に答える 1

1

これは拡張コメントであり、質問は終了する必要があります

StringString#equalsJava の s はnotと比較されます==

例えば、

"Dexter".equals(name.getText())

現在、オブジェクト (メモリ) 参照を比較しています。これはめったに変化しません。

詳細については、ストリングストレイルをご覧ください。

于 2013-11-14T23:48:03.547 に答える