当前位置: 首页 > 知识库问答 >
问题:

字符串比较-Android[重复]

宓文斌
2023-03-14

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

我有一个名为“gender”的字符串,它将以“male”或“fomen”作为其值。

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语句比较字符串值。

共有2个答案

濮赤岩
2023-03-14

String与int或其他数值变量不同,在Java中的比较与其他语言不同。

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

所以代码应该是这样的:

if(gender.compareTo("Male")==0){
   salutation ="Mr.";
}
if(gender.compareTo("Female")==0){
   salutation ="Ms.";
}
霍财
2023-03-14

试试这个

if(gender.equals("Male"))
 salutation ="Mr.";
if(gender.equals("Female"))
 salutation ="Ms.";

同时删除if语句中的(分号

if(gender.equals(g1));

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

 类似资料:
  • 在与字符串进行比较时,我们可以使用或 在中,我们知道它检查引用,但在中它检查内容。 假设有两个字符串 字符串s=“SO”;字符串s1=“SO”; 所以在这种情况下,s1==s和s.equals(s1)都将为真。 但在这里它给了我错误 所以我假设比优先级高 所以在这种情况下 它将像(“s1)==s一样被拆分,现在“s1”将是一个新字符串,因此新字符串永远不会等于s,因此其打印错误 我只是想知道我的想

  • 问题内容: 我听说散列(即将字符串或对象转换为数字)用于字符串等,因为比较数字比字符串更容易。如果为真,这是什么原因? 问题答案: 不一定是这种情况,但大多数时候可能是这样。 请考虑以下情况: 我想比较字符串“ apples”和“ oranges”。如果我只想确定“ apples” ==“ oranges”,我只需要比较每个字符串的第一个字符:’a’!=’o’=>“ apples”!=“ oran

  • 主要内容:equals() 方法,equalsIgnoreCase() 方法,equals()与==的比较,compareTo() 方法字符串比较是常见的操作,包括比较相等、比较大小、比较前缀和后缀串等。 在 Java 中,比较字符串的常用方法有 3 个:equals() 方法、equalsIgnoreCase() 方法、 compareTo() 方法。下面详细介绍这 3 个方法的使用。 equals() 方法 equals() 方法将逐个地比较两个字符串的每个字符是否相同。如果两个字符串具有相

  • 如何检查一个字符串是否在另一个字符串中,但匹配项需要在前面,而不是中间或最后。例如,a="

  • 问题内容: 在继续之前: 我知道我们应该使用.equals()比较内容。 我现在只是在谈论以下情况下的实际引用是否相同… 说我们有以下内容: 我认为应该是正确的,因为在字符串池中,对“字符串”的引用应该与str1和str2相同,现在都是“字符串”。它应该为true,但最终为 false 。 我尝试过,这次返回了 true 。然后我尝试了: 同样是 System.out.println(“ str”

  • 我对蟒蛇很陌生。我试图从另一个列表中删除出现在一个列表中的文件。这些列表是通过在mac和windows上重定向ll-R生成的(但是自从使用其他python脚本进行合并、排序等处理之后)。有些文件名有重音和特殊符号。这些字符串,即使它们是相同的(打印相同,在包含列表的文件中看起来相同),也被发现是不相等的。 我找到了关于如何在Unicode中比较字符串与特殊字符的线程:Python字符串比较-特殊/