将空字段与字符串进行比较



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

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

但是当我想使用它来与字符串进行比较时,例如

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

我在数据库中没有填写任何内容的项目上收到错误。只有实际填写"true"的字段不会给出错误。我尝试了 c.getString(1).toString();但这并不能解决问题...有什么想法吗?

检查应如下所示

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

这样你就不会得到NullPointerException

如 Cursor#getString Javadoc 中所建议

结果以及此方法在列值为 null 或列类型不是字符串类型时是否引发异常是实现定义的。

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

 if(!c.isNull(1))
 //Get Value here
Or 
if(c.moveToFirst())
 //get value here
这样做

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

这样,您就可以控制空字符串和空字符串。

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

你的问题不在于转换(你应该阅读 LogCat)。在读取游标之前,应首先检查游标是否包含数据:

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

然后进行检查。

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

相关内容

  • 没有找到相关文章

最新更新