我遇到了IF语句和比较字符串的问题。 我确实检查了这一点以了解更多关于字符串比较的信息 How do I compare strings in Java?
如果我理解这一点,“cursor.getString(0)”将返回一个字符串。无论如何,在我的Sqlite表中,我猜的是“文本”类型。我可以用log.d打印字符串“name”并显示正确的单词。但是当它在IF语句中比较字符串时,它与任何东西都不匹配。我对Sqlite或代码的任何其他部分没有任何问题。 我的if语句不起作用
这是我的代码:
String Food = "Food";
while(cursor.moveToNext()){
String name = cursor.getString(0);
Log.d("name", "name: " + name); //This sprints: name: Food
if(name.equals(Food)){
// ...do something
}
else if (Food.equalsIgnoreCase(name)){
// ...do something else
}
}
它将继续打印列的其余部分,但如果我找到名称“Food”,我想“做点什么”。 有人可以帮我找出我的IF声明有什么问题吗?
答案 0 :(得分:0)
只是一个简短的事情,请不要在开头用一个大写命名变量(看起来像一个类)。但是,也许其中一个字符串包含一个空格或类似的东西。在比较字符串之前使用方法trim
:
String food = "Food";
while(cursor.moveToNext()){
String name = cursor.getString(0);
Log.d("name", "name: '" + name + "'"); //This sprints: name: 'Food' ?
if(name.trim().equals(food.trim())){
// ...do something
} else if (food.trim().equalsIgnoreCase(name.trim())) {
// ...do something else
}
}
如果这没有解决您的问题,您可能需要发布更多代码,如果它解决了您的问题,请评价此答案。