if(...) - 两个相等的边被认为不相等

时间:2013-01-10 15:37:13

标签: java android

  

可能重复:
  How do I compare strings in Java?

我对android很新,这是我在StackOverflow中的第一篇文章。简而言之,我面临一个非常奇怪的问题:     在某些方法中我使用if(...),并且两个值都相等,但它没有通过if。     这是一个例子:

String []s=db.getStudentsNames();
        String []t=CopyNames(s);
        String t1,t2;

        t2=Id.getText().toString();
        for(int i=0;i<s.length;i++)
        {
            t1=t[i].substring(t[i].indexOf("-")+1).toString();
            Notifications(t[i].substring(t[i].indexOf("-")+1).toString());
            if(t1.toString()==t2.toString())//Problem!
            {
                Notifications("Id already exists for "+t[i].substring(0,t[i].indexOf("-")).toString());
                return false;
            }
        } 

变量t1&amp; t2是:t1="123456789"&amp; t2="123456789",但它不会进入,如果它们不相等。 还有其他地方被认为是两个相等的边不相等 - 在同一个java页面(活动)中: if(add.getText().toString()=="Add Student"):add是指默认情况下包含文本的按钮:“添加学生” 那我怎么解决这个问题呢?

**当这个问题开始时,我开始在LogCat中看到:

 W/KeyCharacterMap(282): No keyboard for id 0

 W/KeyCharacterMap(282): Using default keymap: /system/usr/keychars/qwerty.kcm.bin

 D/dalvikvm(282): GC_FOR_MALLOC freed 5438 objects / 256800 bytes in 73ms

2 个答案:

答案 0 :(得分:4)

您不应该使用==来比较Java中的字符串。请改用t1.toString().equals(t2.toString())

答案 1 :(得分:1)

永远不要在String对象上使用==。请改用t1.equals(t2)