java中用trim之前的判断问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 20:15:43
if (!(null == str || "".equalsIgnoreCase(str.trim()))) {
String str1 = str.trim();
}
trim之前这样做判断对嘛? 目的是避免str为NULL时直接trim报错
现在是如果用|| 是这种写法 if (!(null == str || "".equalsIgnoreCase(str.trim()))) {
String str1 = str.trim();
}
用&&是这种写法 if (null != str && !"".equalsIgnoreCase(str.trim())) {
......
这两种写法是一样的啊

你这样判断是对的
if (!(null == str || "".equalsIgnoreCase(str.trim()))) {

if (null != str && !"".equalsIgnoreCase(str.trim())) {
完全一样

if (!(null == str && "".equalsIgnoreCase(str.trim()))) {

把||替换成&&就好了 if里面两个条件全部为非才是我们想要的结果
如果是||的话 如果str==null还会继续再判断后面那个条件最终导致空指针异常

补充:修改答案 同意 qianqing02朋友答案 我看了一下,如果null为空还是会判断后面一个条件,上面的写法与
if (null != str && !"".equalsIgnoreCase(str.trim())) {
是不一样的 所以答案应该是如楼上所答!

不对,这样会报java.lang.NullPointerException

应该改成
if (null != str && !"".equalsIgnoreCase(str.trim())) {
......

这样如果null != str成立才会走后面的!"".equalsIgnoreCase(str.trim())

那应该&&啊