我要判断一个字体串为空,用了这三个方法都不行,高手指教!
(1)
if (s=""){
...
}(2)if(s.equals(null)){
...
}
(3)
if(s.compareTo(null)==1){
...
}为何都不对呢?

解决方案 »

  1.   

    if (s == null || "".equals(s)) {
    }
      

  2.   

    if ( null==s || "".equals(s)) {
    }
      

  3.   

    if (s == null || s.equals(""))
    {
    ...
    }
      

  4.   

    if(s == null || s.equals(""))
    null是没有对象引用
    而""是对s的内容与""进行比较
      

  5.   


    if(s == null || s.equals(""))
    null是没有对象引用
    而""是对s的内容与""进行比较*************************
    这个正解。 
     
      

  6.   

    if (s == null || s.equals(""))
    {
    ...
    }
      

  7.   

    个人认为s.length()  == 0  好点
      

  8.   

    我经常用s.length() == 0
    判断字符串的长度
      

  9.   

    if(s==null|| s.equals(""))
    do something
      

  10.   

    if (s==null || s.equals(""))
    或者
    if (s.length == 0)  //如果s 为 null 或者s 为空,将返回0public static void main(String[] args){
     String s = new String();
     System.out.println(s.length);
    }
      

  11.   

    if (s.length == 0)  //如果s 为 null 或者s 为空,将返回0?
    s 为 null显然会空指针异常!!!
      

  12.   

    个人觉得1楼和3楼最好,
    因为如果s为null的话就不存在equals()和length()方法(会抛NullPointerException异常)
    这也正是你的程序问题的所在。
    其他几位由于先判断了s是否为null,如果是null,后面就不执行了,
    所以后面就那样写也就不会出问题了。
      

  13.   

    问题已经解决了吧!发一下牢骚!
    "".equals(s)
    搞得神秘兮兮的!一看编码风格不好
    和s.equals("")
    还不是一样。
      

  14.   

    当然不一样,比如s是null时就NullPointException了
      

  15.   

    "".equals(s)的风格比s.equals好,你自己没看惯而已。
    因为""这个值是已经确定的,预知的,而s是未知的,
    所以用得不小心的时候s.equals就会出现nullpoint异常。在这里虽然不会,
    因为前面有if (s == null, 但是习惯跟在那里使用没有关系的。不一定的equals方法,包括其它很多处理,如果用确定的值处理问题会比未确定的处理少很多bug。