我有一个Android应用程序。因为我正在比较EditTest中的两个字符串,但是我得到了一些奇怪的结果......
if(v==findViewById(R.id.submit)){
//
if(email==crfm_email)
{
String warn="Done!";
Toast toast = Toast.makeText(getBaseContext(), warn, Toast.LENGTH_LONG);
toast.show();
}
else
{
oFN=(EditText)findViewById(R.id.owners_first_name);
String warn="email addresses do not match "+eMail+" "+crfEmail;
Toast toast = Toast.makeText(getBaseContext(), warn, Toast.LENGTH_LONG);
toast.show();
}
}
问题是,即使两个变量的输入相同,控制也总是转到else部分。
我知道这是一个简单的错误,但无法解决它......!
答案 0 :(得分:3)
使用:
if (email.equals(crfm_email))
{
....
比较字符串。关键是要比较String
的内容,而不是String
对象的引用。
答案 1 :(得分:2)
看起来你正在进行对象引用比较而不是对象比较。
if(email==crfm_email)
应该是......
if(email.equals(crfm_email))
答案 2 :(得分:2)
尝试:
email.equals(crfm_email)
==在java中比较它是否是字符串的相同实例,如果字符串的内容相同则不是
答案 3 :(得分:0)
我想您可能对以下SO问题感兴趣:Java common Gotcha's。
热门竞争者正在使用==
代替equals
:)