判断一个字符串是否为空,你应该首先判断是不是空引用(null),然后再判断length
如果用str=="",你首先得创建一个临时的空字符串,效率上比用length差很多,特别是在进行大量判空时
if(str!=null&&str.length!=0)
    .....

解决方案 »

  1.   

    str.length == 0  // 应该为 str.length()  表示长度为0
    str == null     // 表示 str 没有指向任何对象
    str == ""     // 直接用==比较只是比较refference, 一般情况下这个表达式结果永远为false所以可以用前两个, 一定要用第3种的话应该用 str.equals("")
      

  2.   

    楼上说的对
    str.length == 0  // 应该为 str.length()  表示长度为0,但是该str在内存中分配了空间!
    str == null     // 表示 str 没有指向任何对象,即在内存中没有空间!
    str == ""     // 表示str里面什么也没有,但是在内存中还是有空间的
      

  3.   

    一般的判断过程是先判断是否为null,然后判断是否为空串,如果顺序反了可能会引起空指针异常
    if (str== null || str.length() == 0) {
      ...................
    }
    str.length == 0 和str == "" 都是被实例化了的,str == null 没有
      

  4.   

    如果str=null, str.length()要抛错,
    所以一定要先判断是否为null,然后判断是否为空串.
      

  5.   

    str.length() == 0 ——字符串长度是否为0,用来判断是否为空字符串。
    str == null     ——字符串是否已经被实例化,用来判断该对象是不是存在——连字符串都不存在的话,空不空的就没意义了。
    str == ""       ——判断该字符串是否和""这个字符串指向同一个地址——一半一定不是一样的。上面的回答都很正确的说。