我要判断一个字体串为空,用了这三个方法都不行,高手指教!
(1)
if (s=""){
...
}(2)if(s.equals(null)){
...
}
(3)
if(s.compareTo(null)==1){
...
}为何都不对呢?
(1)
if (s=""){
...
}(2)if(s.equals(null)){
...
}
(3)
if(s.compareTo(null)==1){
...
}为何都不对呢?
}
}
{
...
}
null是没有对象引用
而""是对s的内容与""进行比较
if(s == null || s.equals(""))
null是没有对象引用
而""是对s的内容与""进行比较*************************
这个正解。
{
...
}
判断字符串的长度
do something
或者
if (s.length == 0) //如果s 为 null 或者s 为空,将返回0public static void main(String[] args){
String s = new String();
System.out.println(s.length);
}
s 为 null显然会空指针异常!!!
因为如果s为null的话就不存在equals()和length()方法(会抛NullPointerException异常)
这也正是你的程序问题的所在。
其他几位由于先判断了s是否为null,如果是null,后面就不执行了,
所以后面就那样写也就不会出问题了。
"".equals(s)
搞得神秘兮兮的!一看编码风格不好
和s.equals("")
还不是一样。
因为""这个值是已经确定的,预知的,而s是未知的,
所以用得不小心的时候s.equals就会出现nullpoint异常。在这里虽然不会,
因为前面有if (s == null, 但是习惯跟在那里使用没有关系的。不一定的equals方法,包括其它很多处理,如果用确定的值处理问题会比未确定的处理少很多bug。