Java 如果(…)-两个相等的边被视为不相等

Java 如果(…)-两个相等的边被视为不相等,java,android,Java,Android,可能重复: 我是android新手,这是我在StackOverflow上的第一篇帖子。简言之,我面临一个非常奇怪的问题: 在一些方法中,我使用了if(…),并且两个值相等,但它没有经过if。 以下是一个例子: String []s=db.getStudentsNames(); String []t=CopyNames(s); String t1,t2; t2=Id.getText().toString(); for(int i=

可能重复:

我是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;
            }
        } 

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

切勿在字符串对象上使用
=
。使用
t1.equals(t2)

使用
t1.toString().equals(t2.toString())
。您现在正在做的是在内存中测试引用指针。解决方案:我来试试..感谢任何一种方式它现在可以工作:)非常感谢:。。我曾经编写过C#程序,其中==使用字符串xD@user1967122你应该把这个答案标为“已接受的答案”,我正在努力,但我必须等10分钟,我会的,别担心
 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