cursor.getString 不能等于字符串变量
cursor.getString can't equal with string variable
我打算比较 cursor.getString(1) == pName,但代码总是不正确地进行比较。我正在做我想到的任何事情,但无法让它发挥作用。代码是这样的:
public Cursor addProduct(int id, String pName, int pPrice) {
int getNewId = 0;
Cursor cursor = viewProduct();
if(cursor.getCount() == 0) {
insertIntoProduct(id, pName, pPrice);
} else {
boolean i = false;
cursor.moveToFirst();
while(cursor.moveToNext()) {
if(cursor.getString(1) == pName) {
i = true;
getNewId = cursor.getInt(0);
}
}
if(i == true) {
updateIntoProduct(getNewId, pName, pPrice);
}
else {
insertIntoProduct(id, pName, pPrice);
}
}
return cursor;
}
除了这个问题,这段代码工作正常。游标将获得 2 列索引的字段,但是 cursor.getString(1) 与 == pName.
你不应该使用 == 来比较字符串,你可以试试下面的方法吗:
if(cursor.getString(1).equals(pName)) {
i = true;
getNewId = cursor.getInt(0);
}
在Java中,字符串是对象。它们可能相似,但是当您通过 ==
运算符比较它们时,您正在检查两者是否是完全相同的对象。取而代之的是,您需要比较对象是否相似,如
if(cursor.getString(1).equals(pName)) {
我打算比较 cursor.getString(1) == pName,但代码总是不正确地进行比较。我正在做我想到的任何事情,但无法让它发挥作用。代码是这样的:
public Cursor addProduct(int id, String pName, int pPrice) {
int getNewId = 0;
Cursor cursor = viewProduct();
if(cursor.getCount() == 0) {
insertIntoProduct(id, pName, pPrice);
} else {
boolean i = false;
cursor.moveToFirst();
while(cursor.moveToNext()) {
if(cursor.getString(1) == pName) {
i = true;
getNewId = cursor.getInt(0);
}
}
if(i == true) {
updateIntoProduct(getNewId, pName, pPrice);
}
else {
insertIntoProduct(id, pName, pPrice);
}
}
return cursor;
}
除了这个问题,这段代码工作正常。游标将获得 2 列索引的字段,但是 cursor.getString(1) 与 == pName.
你不应该使用 == 来比较字符串,你可以试试下面的方法吗:
if(cursor.getString(1).equals(pName)) {
i = true;
getNewId = cursor.getInt(0);
}
在Java中,字符串是对象。它们可能相似,但是当您通过 ==
运算符比较它们时,您正在检查两者是否是完全相同的对象。取而代之的是,您需要比较对象是否相似,如
if(cursor.getString(1).equals(pName)) {