如果   ||   改成  && 就有问题了

解决方案 »

  1.   

    若果是||应该是一样的效果若果是&&:if ((cityId == null) && (cityId.trim().length() == 0))
    当cityId 等于null的时候 ,后边会抛出空指针异常
      

  2.   

    1、LZ,首先你要确定一件事情。  你要判断的字段的类型是什么! 如果是int、short  那么不用继续下去了.  你的"".equals(cityId)就会有问题。2、如果你要判断为空。   确定好类型了。如果是字符串类型,你用.equals()没问题。  如果是基础数据类型,那你就需要考虑下了3、用途:你说到的两种情况, 第一种是你不确定为不为空,所以就用它来判断为空的情况,然后进行处理  ;  第二种的话是你已经确定了该对象不为空,但是为了防止万一,所以用其来判断,然后对数据进行操作!
      

  3.   

    非常谢谢你的回复  
    第一种情况   比如我们一般的需求是从表单页面动态查询   有的字段没有输入值  肯定要判断下的
    if(cityid!= null && !"".equals(cityid))  我们然后用stringbuffer拼接字符串  然后动态查询
      

  4.   

    楼主去网上查看一下“ == ” 和 “equals”的区别就会知道这两个对值是如何进行比较的
      

  5.   

    非常谢谢你的回复  
     第一种情况   比如我们一般的需求是从表单页面动态查询   有的字段没有输入值  肯定要判断下的
     if(cityid!= null && !"".equals(cityid))  我们然后用stringbuffer拼接字符串  然后动态查询 还有如果我们通过一个ID来查询数据库 一般是不是要判断下   如果查不到  然后赋值多少  如果查到了 赋值什么  能给个这种情况的代码吗  谢谢 
      

  6.   

    比如  你 先定义  String parm=null
    然后你判断,传过来的 是空还是不为空 ,查到了就是当前的值。
    查询不到 的话就是 null或者 随便,这个看你 的 业务 没标准
      

  7.   

    这种判断方式不是很推荐的,但是也是常用的,一般涉及到NULL的判断,对程序的可读性不是很好的。我建议你在判断字符串之前,先对NULL进行处理。
    例如:
    str = (str == null) ? "" : str.trim()
    然后使用:
    if (str.isEmpty()){  // 使用str的内部函数去判断是否为空,这样的可读性,会大大提高}
      

  8.   

    用工具类处理一下多省事,import org.apache.commons.lang.ObjectUtils;
    import org.apache.commons.lang.StringUtils;
    StringUtils.isEmpty(ObjectUtils.toString(***))   //这样判断为空。
      

  9.   

    还有如果我们通过一个ID来查询数据库 一般是不是要判断下   如果查不到  然后赋值多少  如果查到了 赋值什么  能给个这种情况的代码吗  谢谢
    1、如果ID是只是用来查询数据库,而没有其他逻辑操作的话则不用这样去判断。  因为数据库可以接受为空的情况 只不过返回的结果是null而已2、如果需要判断“  如果查不到  然后赋值多少  如果查到了 赋值什么”这种情况
    那你可以进行以下操作:if(obj==null){
    obj=new XXX();  //然后就是对obj进行一系列操作
    }
    return obj;
    如果是返回list集合,那就类似的判断就行:
    if(list==null || list.size<1){
    list=new ArrayList<XXX>(); //然后就是一系列list操作
    }
    return list;然后就不用我说了吧
      

  10.   

    StringUtil里面又一个isBlank(String str)
      

  11.   

    判断是empty  就是str == null || str.length() == 0这是判断最少的一个方法
      

  12.   

    a || b  表示或   如果在前面a的判断为true的时候就自己跳出了  不再执行后面的b    只有前面a执行为false的时候才会执行后面的b
    && 与 两个都要执行
      

  13.   

       我说错了
    && 表示  如果前面是false 后面不执行  前面是true后面执行
      

  14.   

    看情况吧,你先把有可能为空的情况debug看一下,再判断。字符串一般用equals 和 trim()  , 对象和js判断一般用==null
      

  15.   

    使用String的判断是否为空的方法。
      

  16.   

    大牛  StringUtil里面的isBlank方法吗
      

  17.   

    StringUitl.isNotBlank    or isBlank
    if(null == cityid || "".equals(cityid)) {}cityId.trim().length() == 0  写法有严重问题  万一cityid 为null就会抛出  NullPointerException
      

  18.   

    最好把这种常用的字符串操作放到StringUtil工具类里。
      

  19.   

    public static boolean isEmpty(String str) {
    if (null == str || "".equals(str.toString().trim()) || str.toString().length()<=0) {
    return true;
    } else {
    return false;
    }
    }
    不知道你的字段是什么类型的
    如果类型不确定,你还想写一个通用的,那就自己判断数据类型之后再判断是不是空
      

  20.   

    apache : StringUtils.isBlank(str)
      

  21.   

    我一般都是
    if(cityid!=null && !"".equals(cityid)){
    }else{
    }
    防止逻辑混乱
      

  22.   

    我一般都是先把“”放在第一个判断if("".equals(cityid) || cityid == null)
      

  23.   


    楼主你好,如果你如下代码:String cityId=null;
    if(null!=cityId){
         //做你的操作
    }
    String cityId="";
    if(!"".equals(cityId)){
         //做你的操作
    }//在你不知道,cityId 是空字符串,还是null的空值时。使用一下语句
    if(null!=cityId || !"".equals(cityId)){
         //做你的操作。
    }
    //如果你想判断,两边都不等于空的话,可以采用下面语句
    if(null!=cityId && !"".equals(cityId)){
         //做你的操作。
    }   如果你想用第三方提供的也可以,但是我个人不建议使用哦。毕竟还是原生的速度快点。但是有些必须要使用第三方是可以采用的。

      

  24.   

    上面漏了一样东西。补上。StringBuilder cityId = null;
    if (null != cityId) {
        // 做你具体操作
    }StringBuilder cityId = new StringBuilder();
    if (cityId.length() > 0) {
        // 做你的具体操作。
    }