if语句出错

时间:2011-02-04 13:10:14

标签: java android if-statement

我有一个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部分。 我知道这是一个简单的错误,但无法解决它......!

4 个答案:

答案 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:)