空值判断求大神详细解读中间两行代码

public static boolean isNull(String str) {
    boolean flag = str == null || "".equals(str) || "".equals(str.trim());
    flag = flag || "null".equals(str) || str.trim() == null;
    return flag;
}

boolean flag = str == null || "".equals(str) || "".equals(str.trim());
拆分 当str == null || "".equals(str) || "".equals(str.trim())其中之一条件满足,就返回true,不满足返回false;
也就是 flag=true;或者 flag=false;
flag = flag || "null".equals(str) || str.trim() == null;
这个意思就是flag等于后面条件满足之一返回的结果。他们返回结果是true /false

boolean flag = str == null || "".equals(str) || "".equals(str.trim());
str==null 或者str=""或者str=" "会返回true
flag = flag || "null".equals(str) || str.trim() == null;
flag=true或者 str="null"或者str.trim() == null;(你这个用法我也不是很理解,你可以看看api文档的String类)

str == null || "".equals(str) || "".equals(str.trim()) 这是一个三目运算,当str == null 或者为空时返回true,否则false;
其次flag || "null".equals(str) || str.trim() == null; 是一个逻辑或的算法,当 1.flag为true 2.str为"null" 3. str==null 这三个有一个为真时,返回true
备注:当1为true时,后面两个不会执行,直接返回true;
另外,str == null 和str = "null",是两个值,前者是指空指针,后者不为空,str里存的就是 null这个字符串

boolean flag = (str == null || "".equals(str) || "".equals(str.trim()));
flag = (flag || "null".equals(str) || str.trim() == null);