比较空字段和字符串?

时间:2012-09-24 13:22:51

标签: android string compare

我使用游标从数据库表中获取某个值。它从“TEXT”类型的列中获取。这个想法是列的标准值是空白的,但是当单击某个按钮时,查询将向其添加“true”。

String var = c.getString(1); //use cursor to get value

但是当我想用它来比较字符串时,f.e。

if(var.equals("true")) {
//do something crazy
}

我在数据库中没有填充任何内容的项目上收到错误。只填写实际为“true”的字段不会产生错误。我试过c.getString(1).toString();但这不是诀窍......任何想法?

5 个答案:

答案 0 :(得分:1)

这样做:

if(var != null && !var.equals(""))

这样你就可以控制空字符串和空字符串..

答案 1 :(得分:1)

检查应该如下

if("true".equals(var)) {

这样你就不会得到NullPointerException

正如Cursor#getString Javadoc

中所述
  

结果和当列值为空时此方法是否抛出异常或列类型不是字符串类型是实现定义的。

在检查数据库中的值之前,您应该使用Cursor#isNullCursor#moveToFirst

 if(!c.isNull(1))
 //Get Value here

Or 

if(c.moveToFirst())
 //get value here

答案 2 :(得分:1)

if("true".equals(var)) {
  //do something crazy
}

答案 3 :(得分:1)

您的问题不在演员表中(您应该阅读LogCat)。在获取之前,您应首先检查光标是否包含数据:

String var = "";    
if (c.moveToFirst())
var = c.getString(1);

然后做你的检查。

if(var.equals("true")) { //do something crazy } 

答案 4 :(得分:0)

 firstly check the 
 if(var.trim.equals("")) {
    //do your task
 }