2011-07-06 1 views
2

では正常に動作していない私はJTextAreaのを持っている、と私はtextarea.getTextを(使用して愚かなテストをやろうとしている)textarea.getText()は、Java

if(textarea.getText() == "") 
{ 
    System.out.println("empty string"); 
} 

私はこれを行うと、私はしないでくださいテキストエリアを空のままにしても画面上に何かをつけるか、内部に何かを入力してください。

if(textarea.getText() != "") 
{ 
    System.out.println("empty string"); 
} 

しかし、私がこれを行うとき、私はすべての場合に "空文字列"メッセージを受け取ります。

ここで問題は何ですか?

+1

'.trim()'を追加して 'WhiteSpace Chars'を使わないようにする... http://stackoverflow.com/questions/6426201/java-order-of-or-comparison – mKorbel

+0

答えがわかっているので読む[この投稿](http://suhail3.blogspot.com/2011/07/operator-with-strings-in-java-and.html) – saplingPro

答えて

7

あなたは==の代わりにequalsを使用する必要があります。

if("".equals(textarea.getText())) 
{ 
    System.out.println("empty string"); 
} 

==は参照を比較しますが、それだけで、それは正確に同じ文字列インスタンスの場合に動作します。文字列の内容が同じかどうかをチェックするには、equalsメソッドを使用する必要があります。

1

参照比較の代わりに.equals(textarea.getText())を使用してください。 "演算子==はオブジェクト参照を比較します。文字列を比較する場合

3

あなたのコードは、().equalsを使用する必要があります。

if(textarea.getText().equals("")) 
{ 
    System.out.println("empty string"); 
} 

==は

2

代わりにオブジェクト参照ではなく、オブジェクトの値を比較し、あなたがこのケースでのisEmptyメソッドを使用することができます。

if(textarea.getText().isEmpty()) 
{ 
    System.out.println("empty string"); 
}