Java 字符串比较-Android
我无法使用以下代码比较两个字符串: 我有一个名为“性别”的字符串,它的值是“男性”或“女性”Java 字符串比较-Android,java,android,string,Java,Android,String,我无法使用以下代码比较两个字符串: 我有一个名为“性别”的字符串,它的值是“男性”或“女性” if(gender == "Male") salutation ="Mr."; if(gender == "Female") salutation ="Ms."; 这不起作用,所以我尝试了以下方法: String g1="Male"; String g2="Female"; if(gender.equals(g1)) salutation ="Mr."; if(gender.equa
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(gender.equals(g1));
在Java中,新手遇到的最常见错误之一是使用==来比较字符串。您必须记住,==比较对象引用,而不是内容。试试这个
String g1="Male";
String g2="Female";
if(gender.equals(g1))
salutation ="Mr.";
if(gender.equals(g2))
salutation ="Ms.";
您正在结束if语句if(gender.equals(g1))代码>在Java中,我们不会像上面那样比较字符串。。。
这里是字符串比较
if (gender.equalsIgnoreCase("Male")) {
salutation = "Mr.";
} else if (gender.equalsIgnoreCase("Female")) {
salutation = "Ms.";
}
if(性别等于(g1)) 这应该起作用:
if(gender.equals("Male")){
salutation ="Mr.";
}
else if(gender.equals("Female")){
salutation ="Ms.";
}
记住,不要使用在if
语句之后执行code>。运算符检查两个对象是否完全相同。两个字符串可以是不同的对象,但具有相同的值(其中的字符完全相同)。使用.equals()方法比较字符串是否相等
您的gender==“Male”
实际上是在比较对象gender
和另一个对象Male
的对象引用。您必须使用.equals()
方法来比较对象的值。试试这个
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.
我认为上面提到的答案是正确的,因为==用于测试两个字符串是否是相同的对象,而.equals()用于测试两个字符串是否具有相同的值 实际上这里的每一个代码都运行得很好,但是您的问题可能来自您的gender
变量。你试过做一个简单的System.out.println(性别)代码>在比较之前?字符串与int或其他数值变量在Java中的比较与其他语言不同
要在Java(android)中比较字符串,可以使用方法.compareTo()
所以代码应该是这样的:
if(gender.compareTo("Male")==0){
salutation ="Mr.";
}
if(gender.compareTo("Female")==0){
salutation ="Ms.";
}
试试看:
if (Objects.equals(gender, "Male")) {
salutation ="Mr.";
} else if (Objects.equals(gender, "Female")) {
salutation ="Ms.";
}
可以使用,contentEquals()函数。它可能会对你有所帮助。这一款适合我:
if (email.equals("fahim@gmail.com") && pass.equals("123ss") ){
Toast.makeText(this,"Logged in",Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(this,"Logged out",Toast.LENGTH_LONG).show();
}
此外,如果要比较两个字符串是否不同,可以使用:
String mystring = "something";
!mystring.equals("whatever")
它会变成现实 事实上,如果我们能看到来自性别的信息,我们可以提供更好的帮助
然而,你可以尝试以下内容,也许这是一个案例问题,比如即将到来的性别是男性而不是男性
或者,如果这不起作用,请尝试获取性别信息,并让我们知道它是什么,以便我们能够更好地提供帮助。
你可以这样打印性别
System.out.println(gender);
您可能会在IDE的控制台上看到输出如果您解释原因,我将+1此:)仔细查看您的代码并删除;在两个if语句的末尾。对不起,我没有使用;在我实际代码中的if stmt之后,在此处键入问题时出错@RaghavKumar输入是什么?为了零安全,我总是把常数放在左边:if(“Male”.equals(gender))
你从答案中得到解决方案了吗?如果这不起作用,那是因为性别是另一回事。将此添加到图中,说明什么是Log.d(“性别”,性别)
这是一个更好的解释,为什么不使用==没有“以上”答案,因为顺序随投票数而变化。如果可能,请编辑并指定。tks
if(gender.equalsIgnoreCase("male"){
salutation = "Mr.";
} else if(gender.equalsIgnoreCase("female"){
salutation = "Ms.";
}
System.out.println(gender);