字符串比较 - Android

Rag*_*mar 39 java string android

我无法使用以下代码比较两个字符串:

我有一个名为"gender"的字符串,其中包含"Male"或"Female"作为其值.

if(gender == "Male")
   salutation ="Mr.";
if(gender == "Female")
   salutation ="Ms.";
Run Code Online (Sandbox Code Playgroud)

这不起作用,所以我尝试了以下方法:

String g1="Male";
String g2="Female";
if(gender.equals(g1))
   salutation ="Mr.";
if(gender.equals(g2))
   salutation ="Ms.";
Run Code Online (Sandbox Code Playgroud)

再一次,它没有用.有人可以告诉我如何使用if语句比较字符串值.

Lin*_*vel 85

试试这个

if(gender.equals("Male"))
 salutation ="Mr.";
if(gender.equals("Female"))
 salutation ="Ms.";
Run Code Online (Sandbox Code Playgroud)

同样;在if语句中删除(分号)

if(gender.equals(g1));
Run Code Online (Sandbox Code Playgroud)

在Java中,新手遇到的最常见错误之一是使用==来比较字符串.你必须记住,==比较对象引用,而不是内容.

  • 如果你解释原因,我会+1这个:) (3认同)

小智 12

与int或其他数字变量不同的字符串在Java中的比较与其他语言不同.

为了比较Java中的字符串(android),使用方法.compareTo();

所以代码应该是这样的:

if(gender.compareTo("Male")==0){
   salutation ="Mr.";
}
if(gender.compareTo("Female")==0){
   salutation ="Ms.";
}
Run Code Online (Sandbox Code Playgroud)


Sil*_*ler 8

在Java中,我们不像上面那样比较字符串...这里是字符串比较...

    if (gender.equalsIgnoreCase("Male")) {
        salutation = "Mr.";
    } else if (gender.equalsIgnoreCase("Female")) {
        salutation = "Ms.";
    }
Run Code Online (Sandbox Code Playgroud)


anj*_*aly 7

我认为上面提到的答案是正确的.因为==用于测试两个字符串是否是同一个对象,而.equals()测试两个字符串是否具有相同的值.

  • 这是一个更好的解释,为什么不使用== (2认同)
  • 没有“以上”的答案,因为顺序随票数的不同而不同。请编辑并指定(如果可能)。ks (2认同)