有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java if(…)两个相等的边被认为是不相等的

Possible Duplicate:
How do I compare strings in Java?

我是安卓新手,这是我在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&;t2是:t1="123456789"&t2="123456789",但如果它们不相等,则不会输入。 还有其他地方,两个相等的边被认为是不相等的-在同一个java页面(活动)中,如: if(add.getText().toString()=="Add Student"):add指的是一个按钮,默认情况下,它有一个文本:“addstudent” 那么我该如何解决这个问题呢

**当这个问题开始出现时,我开始在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) 个答案

  1. # 1 楼答案

    不要在字符串对象上使用==。改用t1.equals(t2)

  2. # 2 楼答案

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