Java 比较android中的两个EditText字符串

Java 比较android中的两个EditText字符串,java,android,Java,Android,如果这是一个愚蠢的问题,我很抱歉,但我试图找到答案,但没有得到。 请帮帮我。。 我是android studio的新手,但具备基本的java知识。 实际上,问题是我正试图像这样比较TextView和EditText的值 TextView a = (TextView)findViewById(R.id.t1); EditText b = (EditText)findViewById(R.id.t2); String x = a.getText().toString(); String y = b

如果这是一个愚蠢的问题,我很抱歉,但我试图找到答案,但没有得到。 请帮帮我。。 我是android studio的新手,但具备基本的java知识。 实际上,问题是我正试图像这样比较
TextView
EditText
的值

TextView a = (TextView)findViewById(R.id.t1);
EditText b = (EditText)findViewById(R.id.t2);

String x = a.getText().toString();
String y = b.getText().toString();

if(x==y)
{
//----stuff--;
}
不显示任何错误,但“if”下的代码不执行。

根据区分大小写的不同,使用
equals()
equalsIgnoreCase()

如下尝试:

if(x.equalsIgnoreCase(y))
{
//----stuff--;
}
请点击此链接了解更多信息:

不能使用等于运算符比较两个字符串。 使用equals或equalsIgnoreCase,如下代码所示

if(x.equalsIgnoreCase(y)){
//return value true if both the strings are same.
}
使用这个

=运算符测试两个变量是否具有相同的引用 (标识)又名内存地址

equals()方法测试两个变量是否引用对象 具有相同状态(值)的

如果不需要匹配case,我建议您使用equals()方法,如果匹配case,则使用equalsIgnoreCase()


Android Studio没有什么特别之处,因为代码不会在其中运行。所有IDE都是一样的。仅当您面临IDE的任何问题时才提及Android Studio。在您的情况下,如果两个字符串相同,则X==Y将为真。例如“Dog”==“Dog”,但区分大小写可以将其返回为false,例如“Dog”==“Dog”@CharukaSilva,前提是它是同一个字符串对象。对于两个相同的字符串对象(我怀疑OP所面对的对象),它将为false。按照我们认为这是一个重复的问题的链接进行解释。@Ole V.V.是的,很好。那么关于这个问题,x=a.getText().toString()和y=b.getText().toString()是否属于同一个字符串对象?我只是想澄清一下我脑子里的事情你的“如果”代码行得通……但你说两个字符串不能与等于运算符进行比较……当我这样写的时候,我可以比较两个字符串:String x=“wangz”;字符串y=“wangz”;如果(x==y);它可以工作…谢谢你的帮助…但是我仍然不明白为什么如果(x==y)不能工作。。。但是我现在肯定要使用x.equals(y),在java中使用==(用于字符串)可以比较它们的引用是相同的。与您所做的一样,测试它们是否都是字符串对象。
String x = a.getText().toString();
String y = b.getText().toString();
boolean correct = x.equals(y);
if(correct)
{
//do stuff
}
if(x.equalsIgnoreCase(y)){
    //both string are equals
 }