if语句中的Sqlite cursor.getString()问题

时间:2014-04-14 14:54:16

标签: android string sqlite if-statement compare

我遇到了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声明有什么问题吗?

1 个答案:

答案 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 
    }
}

如果这没有解决您的问题,您可能需要发布更多代码,如果它解决了您的问题,请评价此答案。