谁能告诉我这两有什么区别啊,两个判断语句
public class Test {
public static void main(String[] args) {
// String a="11";
// if(a!=null)
// {
// if(a.equals(""))
// System.out.println("等于null1");
// else
// System.out.println("不等于空");
// }
// else
// {
// System.out.println("等于null2");
// }
String a="11";
if(a!=null&&!a.equals(""))
{
System.out.println("不等于空");
}
else
{
System.out.println("等于null");
}
}
}
if??java
if
java
区别
------解决方案--------------------小伙子,真看不懂你写的什么,也猜不到你想表达什么!
------解决方案--------------------2个语句基本没什么区别,可能效率有些区别
一般是以下的写法
String a = "11";
if (a != null && !"".equals(a)) {
System.out.println("不等于空");
} else {
System.out.println("等于null");
}
------解决方案--------------------楼主,null和""是不一样的,
比如声明一个 String str ;
如果说str是null,那么内存根本没创建字符串对象,并由str引用。
如果说str是"",那么确实存在一个由str引用的字符串对象,只不过这个字符串的值是""
,是一个空串。
所以第一个例子是正确的,第二个是错误的。但是,第一个中,System.out.println("等于null1");
System.out.println("等于null2");
null1和null2这个地方就错了。
------解决方案--------------------区别不大啊,
就是一个是将条件一个个处理,一个是一次性处理所有条件,方法2可以减少代码量
------解决方案--------------------你这样写本身就有点儿错误,
第一String a="11";//这行代码已经声明了a这个字符串变量,所以a就不可能为NULL,如果a这个字符串是你由参数传递过来的可以进行a是否为NULL的判断。
你第二种算法更快。
------解决方案--------------------其实一个字符串变量就3重情况:
String a;
1 a=null;
2 a="";
3 a="a"//任意内容。
楼主的第一个方法能分辨出具体 a 是什么。而第二重情况只判断把1,2看成一种情况。无法具体判断是null还是"".
------解决方案--------------------没什么区别啊,你的无非是分开了判断,逐一判断而已.也可以写到一起判断啊
------解决方案--------------------其实 a 无非三种情况,
A、a=null;
B、a="";
C、a=某某
你的第二个代码中的if里面是表示C,else表示B、C
两种方式差不多,你想问的是什么区别???效率还是什么??