当前位置: 首页 > 面试题库 >

if语句比较java android中的字符串

东方俊明
2023-03-14
问题内容

我试图在z DBOpenHelper扩展SQLOpenHelper类中编写一个方法。它应该评估数据库中是否存在相同名称的条目。

public boolean existsContact(Contact contact) {

    SQLiteDatabase db = this.getReadableDatabase();
    String selectQuery = "SELECT  * FROM " + TABLE_CONTACTS;
    Cursor cursor = db.rawQuery(selectQuery, null);
    if (cursor.moveToFirst()) {
        do {

            String name = cursor.getString(1);
            String cname = contact.getName();
            if (name == cname) {

                cursor.close();
                db.close();
                return true;
            }

        } while (cursor.moveToNext());
    }

    db.close();

    return false;
}

这是Contact类的相关部分:

 public class Contact {

    String _name;
    public String getName(){
        return this._name;
    }
    }

现在这是奇怪的事情:

方案A:if (name == cname)其中name = "foo"cname = "foo"
等于false。Eclipse调试器显示名称的foo和cname的foo具有不同的id。这两个变量都按之前在代码中所示填充。

方案B:if(name == cname)像这样加载变量的地方:

String name = "foo";
String cname = "foo";
         statement equals true as it's supposed to.

方案C:if("foo" == "foo")等于true
…但是…调试器消失了。LogCat显示调试器已连接,但是eclipse的Debug透视图中没有任何活动。断点无效。没有显示线程


问题答案:

在Java中,当==在两个对象上使用时,实际上并没有比较字符串本身。您需要使用.equals(String)

== 实际上比较两个对象的引用,而不是它们的值。

string1.equals(String target) 根据字符串中的实际字符比较两个字符串。

参见:http : //www.leepoint.net/notes-
java/data/expressions/22compareobjects.html



 类似资料:
  • 我试图找出如何比较if语句中的字符串。我的大部分代码都可以忽略,但都是针对上下文的。我试图在我的简单的石头、布、剪刀游戏中添加一条信息,当有人在石头、布或剪刀之外输入一根弦时。有人能告诉我我在有星号的部分做错了什么吗? };

  • 问题内容: 在Python中使用IF语句时,必须执行以下操作才能使“层叠”正常工作。 检查“等于”时,是否有办法使Python接受多个值?例如, 问题答案: if job in (“mechanic”, “tech”): print “awesome” elif job in (“tool”, “rock”): print “dolt” 括号中的值是一个元组。该运营商检查,看是否右手柄元组内的某处

  • 我试着比较两个值 我得到一个错误

  • 问题内容: 我很难尝试做一些简单的事情。这是代码: 我已经简化了,但这就是了解正在发生的一切的必要条件。变量“数据”是AJAX调用的结果(如果有区别的话)。问题在于它总是转到’else’语句,并警告’成功’,如果转到’else’则不应该。知道这里发生了什么吗? 编辑:这是jQuery中完整的AJAX代码: 然后在PHP响应中: 问题答案: 您可以使用以下方法在客户端修复它: 或者,一种更好的方法是

  • 如果我有3个字符串变量string1 string2和string3,并且根据用户输入,其中一些变量可能是空的,我该怎么做?我想将这些变量与我已经设置的另外3个变量进行比较,除非相应的字符串(string1/string2/string3)输入为空 这个想法是这样的: 如果没有一个是空的,那么: 如果s1是唯一一个空的,那么我们只比较其他2个: 因此,如果输入的字符串为空,程序将不会检查该变量是否