-1

2 つの JTextFields txf1 と txf2 があります。

両方に同じ内容を入力します (例: "test")。

私が作ったIfステートメント:

if (txf1.getText() == txf2.getText()) {
    System.out.println("Equal");
} else {
    System.out.println("Error");
}

エラーメッセージが出力されるのはなぜですか? System.out.println(txf1.getText())andSystem.out.println(txf2.getText())と同じように見えますが、エラーメッセージが出力されますか?

4

3 に答える 3

1

Java での文字列比較は を使用して行われString#equalsます==。これは、オブジェクトのメモリ参照を比較していることを意味しますtrue。これは、必要なときに常に返されるとは限りません。

もっと何か試してみてください....

if (txf1.getText().equals(txf2.getText())) {

...代わりは

于 2013-10-02T07:20:24.887 に答える
1

また、テキスト ボックスのエントリを効率的にするこの良い方法を使用することもできます。

if (txf1.getText().trim().equals(txf2.getText().trim())) {
于 2013-10-02T07:29:23.650 に答える
0

文字列を比較するにはequalsメソッドを使用します。==オブジェクト参照のみを比較します。equals文字列の実際の内容を比較します。

コードは次のようになります。

if (txf1.getText().equals(txf2.getText())) {
  System.out.println("Equal");
} else {
  System.out.println("Error");
}
于 2013-10-02T07:20:10.467 に答える