我无法使用以下代码比较两个字符串:
我有一个名为“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语句比较字符串值。
答案 0 :(得分:81)
试试这个
if(gender.equals("Male"))
salutation ="Mr.";
if(gender.equals("Female"))
salutation ="Ms.";
同样删除if语句中的;
(分号)
if(gender.equals(g1));
在Java中,新手遇到的最常见错误之一是使用==来比较字符串。你必须记住,==比较对象引用,而不是内容。
答案 1 :(得分:12)
与int或其他数字变量不同的字符串在Java中的比较与其他语言不同。
为了比较Java中的字符串(android),使用方法.compareTo();
所以代码应该是这样的:
if(gender.compareTo("Male")==0){
salutation ="Mr.";
}
if(gender.compareTo("Female")==0){
salutation ="Ms.";
}
答案 2 :(得分:8)
在Java中,我们不像上面那样比较字符串...... 这是String比较...
if (gender.equalsIgnoreCase("Male")) {
salutation = "Mr.";
} else if (gender.equalsIgnoreCase("Female")) {
salutation = "Ms.";
}
答案 3 :(得分:6)
我认为上面提到的答案是正确的。因为==用于测试两个字符串是否是同一个对象,而.equals()测试两个字符串是否具有相同的值。
答案 4 :(得分:4)
==运算符检查两个对象是否完全相同。两个字符串可以是不同的对象,但具有相同的值(在它们中具有完全相同的字符)。使用.equals()方法比较字符串是否相等。
http://www.leepoint.net/notes-java/data/strings/12stringcomparison.html
答案 5 :(得分:4)
您的gender == "Male"
实际上是在比较对象gender
和另一个对象Male
的对象引用。您必须使用的是.equals()
方法来比较对象的值。
答案 6 :(得分:3)
试试这个
String g1="Male";
String g2="Female";
if(gender.equals(g1))
salutation ="Mr.";
if(gender.equals(g2))
salutation ="Ms.";
你结束了你的if语句if(gender.equals(g1));
<< ---这里加上“;”
答案 7 :(得分:3)
试试这个。
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.
答案 8 :(得分:3)
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.";
答案 9 :(得分:2)
这应该有效:
if(gender.equals("Male")){
salutation ="Mr.";
}
else if(gender.equals("Female")){
salutation ="Ms.";
}
请注意,不要在;
声明之后使用if
。
答案 10 :(得分:0)
实际上每个代码都运行良好,但您的问题可能来自您的gender
变量。您是否尝试在比较之前做一个简单的System.out.println(gender);
?
答案 11 :(得分:0)
if(gender.equals(g1)); <---
if(gender == "Female"); <---
if.REMOVE IT之后你有分号。
答案 12 :(得分:0)
您可以使用contentEquals()函数。它可能对你有帮助..
答案 13 :(得分:0)
这个对我有用:
https://www.yahoo.com/**75063**/list.json
答案 14 :(得分:0)
此外,如果要比较两个字符串是否不同,则可以使用:
String mystring = "something";
!mystring.equals("whatever")
它将返回true!
答案 15 :(得分:0)
实际上,如果我们能看到输入的内容是什么gender
,我们可以提供更好的帮助但是你可以尝试关注,也许这是一个案例问题,比如传入的性别是男性而不是男性 em>
if(gender.equalsIgnoreCase("male"){
salutation = "Mr.";
} else if(gender.equalsIgnoreCase("female"){
salutation = "Ms.";
}
或者如果这不起作用,请尝试获取性别并告诉我们它是什么,以便我们提供更好的帮助。 您可以像这样打印性别
System.out.println(gender);
您可能会在 IDE 的控制台上看到输出
答案 16 :(得分:-1)
试一试:
if (Objects.equals(gender, "Male")) {
salutation ="Mr.";
} else if (Objects.equals(gender, "Female")) {
salutation ="Ms.";
}