【问题标题】:if(...) - two equal sides are considered as not equal [duplicate]if(...) - 两个相等的边被认为不相等[重复]
【发布时间】:2013-01-10 15:37:12
【问题描述】:

可能重复:
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 和 t2 是:t1="123456789"t2="123456789",但它不会像它们不相等一样进入 if。 还有其他地方是两个相等的边被认为是不相等的 - 在同一个 java 页面(活动)中,例如: if(add.getText().toString()=="Add Student"):添加指的是一个按钮,默认情况下,文本:“添加学生” 那么我该如何解决这个问题呢?

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

【问题讨论】:

标签: java android


【解决方案1】:

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

【讨论】:

  • 我会试试看..谢谢
  • 它现在可以工作了 :) 非常感谢 :) .. 我曾经编写 C# 并且 == 可以使用字符串 xD
  • @user1967122 您应该将此答案标记为“已接受的答案”
  • 我正在尝试,但我必须等待大约 10 分钟..我会做的..别担心
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-12
    • 1970-01-01
    • 1970-01-01
    • 2020-08-01
    • 2015-09-25
    • 1970-01-01
    • 1970-01-01
    • 2015-07-06
    相关资源
    最近更新 更多