次のコードを使用して2つの文字列を比較することはできません。
「gender」という名前の文字列があり、その値として「Male」または「Female」があります。
if(gender == "Male")
salutation ="Mr.";
if(gender == "Female")
salutation ="Ms.";
これはうまくいきませんでしたので、次のことを試しました:
String g1="Male";
String g2="Female";
if(gender.equals(g1))
salutation ="Mr.";
if(gender.equals(g2))
salutation ="Ms.";
繰り返しますが、うまくいきませんでした。 ifステートメントを使用して文字列値を比較する方法を教えてください。
これを試して
if(gender.equals("Male"))
salutation ="Mr.";
if(gender.equals("Female"))
salutation ="Ms.";
Ifステートメントの;
(semi-colon)も削除します
if(gender.equals(g1));
Javaでは、初心者が最もよく遭遇する間違いの1つは、==を使用して文字列を比較することです。覚えておく必要があります。==はコンテンツではなくオブジェクト参照を比較します。
Intや他の数値変数とは異なり、文字列はJavaで他の言語とは異なって比較されます。
Java(Android)の文字列を比較するには、メソッド.compareTo();を使用します。
したがって、コードは次のようになります。
if(gender.compareTo("Male")==0){
salutation ="Mr.";
}
if(gender.compareTo("Female")==0){
salutation ="Ms.";
}
In Java上記のように文字列を比較することはありません...ここに文字列比較があります...
if (gender.equalsIgnoreCase("Male")) {
salutation = "Mr.";
} else if (gender.equalsIgnoreCase("Female")) {
salutation = "Ms.";
}
上記の答えは正しいと思います。==は2つの文字列が同じオブジェクトであるかどうかをテストするためです。一方、.equals()は2つの文字列が同じ値を持つかどうかをテストします.
==演算子は、2つのオブジェクトがまったく同じオブジェクトであるかどうかを確認します。 2つの文字列は異なるオブジェクトである場合がありますが、値は同じです(文字列がまったく同じです)。 .equals()メソッドを使用して、文字列が等しいかどうかを比較します。
http://www.leepoint.net/notes-Java/data/strings/12stringcomparison.html
_gender == "Male"
_は、実際にオブジェクトgender
と異なるオブジェクトMale
のオブジェクト参照を比較しています。使用する必要があるのは、オブジェクトの値を比較する.equals()
メソッドです。
これを試して
_String g1="Male";
String g2="Female";
if(gender.equals(g1))
salutation ="Mr.";
if(gender.equals(g2))
salutation ="Ms.";
_
ifステートメントif(gender.equals(g1));
<< ---ここに「;」を追加して終了していました
String g1="Male";
String g2="Female";
String salutation="";
String gender="Male";
if(gender.toLowerCase().trim().equals(g1.toLowerCase().trim()));
salutation ="Mr.";
if(gender.toLowerCase().trim().equals(g2.toLowerCase().trim()));
salutation ="Ms.";
これを試して。
String g1 = "Male";
String g2 = "Female";
String gender = "Male";
String salutation = "";
if (gender.equalsIgnoreCase(g1))
salutation = "Mr.";
else if (gender.equalsIgnoreCase(g2))
salutation = "Ms.";
System.out.println("Welcome " + salutation);
出力:
Welcome Mr.
これは動作するはずです:
if(gender.equals("Male")){
salutation ="Mr.";
}
else if(gender.equals("Female")){
salutation ="Ms.";
}
if
ステートメントの後に;
を使用しないでください。
さらに、2つの文字列が異なるかどうかを比較する場合は、次を使用できます。
String mystring = "something";
!mystring.equals("whatever")
Trueを返します!
if(gender.equals(g1)); <---
if(gender == "Female"); <---
If.REMOVE ITの後にセミコロンがあります。
これは私のために働く:
if (email.equals("[email protected]") && pass.equals("123ss") ){
Toast.makeText(this,"Logged in",Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(this,"Logged out",Toast.LENGTH_LONG).show();
}
ContentEquals()関数を使用できます。役に立つかもしれません。
実際、ここではすべてのコードが正常に実行されますが、問題はおそらくgender
変数に起因します。比較の前に単純なSystem.out.println(gender);
を実行しようとしましたか?