研究apache.common.lang3包下的StringUtils类
/*判断字符串为null或者字符串长度为0*/
public static boolean isEmpty(final CharSequence cs) {
return cs == null || cs.length() == 0;
}
/*说明1:java.lang 接口 CharSequence,所有已知实现类: CharBuffer, Segment, String, StringBuffer, tringBuilder*/
/*说明2:为什么使用接口 CharSequence类型变量,凡是父类出现的地方都可以使用子类替换掉父类*/
/*说明3:判断字符串为空的根据是,字符串为null或者字符串长度为0*/
/*说明4:为什么CharSequence的子类可以使用length方法呢? 因为CharSequence接口定义四个只读接口,有 int length() 返回此字符序列的长度。*/
//StringUtils.isEmpty(null) = true
//StringUtils.isEmpty("") = true
//StringUtils.isEmpty(" ") = false //为什么不为true,是因为很多空格组成的字符串长度不等于0,所以为false
//StringUtils.isEmpty("bob") = false
//StringUtils.isEmpty(" bob ") = false
/*判断字符串不为null并且字符串长度不为0*/
public static boolean isNotEmpty(final CharSequence cs) {
return !isEmpty(cs);
}
//StringUtils.isNotEmpty(null) = false
//StringUtils.isNotEmpty("") = false
//StringUtils.isNotEmpty(" ") = true //需要理解此处,不过理解起来并不难
//StringUtils.isNotEmpty("bob") = true
//StringUtils.isNotEmpty(" bob ") = true
public static boolean isNotEmpty(final CharSequence cs) {
return cs != null && cs.length() > 0;
}
/*说明,其实empty使用的情况不多,因为它涉及没有将多个空格符的情况当在里面去思考,即" "判定为true*/