2

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

length が 0 で flag9 が null の場合でも、それ以外の部分のみが実行されます。誰か助けてください

Log.d(TAG, "flag8 "+ getIntent().getExtras().getString("flag").length());
Log.d(TAG, "flag9 "+ getIntent().getExtras().getString("flag"));
if( getIntent().getExtras().getString("flag")=="0"   ||getIntent().getExtras().getString("flag").length()==0)
{
 Log.d(TAG, "hidebeta "+ getIntent().getExtras().getString("flag"));
            beta.putExtra("beta", "hidebeta");
            flag=1;
            beta.putExtra("flag", "1");
                }
else {
    beta.putExtra("beta","showbeta");
    Log.d(TAG, "showbeta "+ getIntent().getExtras().getString("flag"));
    flag=0;
    beta.putExtra("flag","0");
                }
4

3 に答える 3

5

Java では、文字列の比較に使用できません。以下を使用する必要があります。==

if(string.equals("example"))

それではequals()、条件で使用して最適化しましょう。

String flag = getIntent().getStringExtra("flag");
if(flag.equals("0") || flag.length()==0)

(また、それらにアクセスする前に安全であることを確認し、 null でないことを確認する必要があります。getIntent())flag

Java で文字列を比較するにはどうすればよいですか? を参照してください詳細については、文字列の比較に関するドキュメントを参照してください。

于 2012-10-20T16:31:21.883 に答える
5

(オブジェクトへの参照を比較する)equalsではなく、文字列を比較するために使用します。==

于 2012-10-20T16:31:37.643 に答える
5

値ではなく実際の参照を比較するため、 ==two の比較に operator を使用しないでください。代わりにメソッドをStrings使用してください。equals()お役に立てれば。

于 2012-10-20T16:32:09.073 に答える