package com.fuzamei.util; public final class StringUtil { private StringUtil() { throw new AssertionError("不能实例化 StringUtil"); } // Empty checks //----------------------------------------------------------------------- /** * 检查CharSequence是否为empty ("")或null * * StringUtil.isEmpty(null) = true * StringUtil.isEmpty("") = true * StringUtil.isEmpty(" ") = false * StringUtil.isEmpty("bob") = false * StringUtil.isEmpty(" bob ") = false * * @param cs 待测字符序列 * @return 待测序列是否为empty或null */ public static boolean isEmpty(final CharSequence cs) { return cs == null || cs.length() == 0; } /** * 检查CharSequence是否不为empty ("")或null * * StringUtil.isNotEmpty(null) = false * StringUtil.isNotEmpty("") = false * StringUtil.isNotEmpty(" ") = true * StringUtil.isNotEmpty("bob") = true * StringUtil.isNotEmpty(" bob ") = true * * @param cs 待测字符序列 * @return 待测序列是否不为empty或null */ public static boolean isNotEmpty(final CharSequence cs) { return !isEmpty(cs); } /** * 检测CharSequence中是否有任意一个为empty ("")或null * * StringUtil.isAnyEmpty(null) = true * StringUtil.isAnyEmpty(null, "foo") = true * StringUtil.isAnyEmpty("", "bar") = true * StringUtil.isAnyEmpty("bob", "") = true * StringUtil.isAnyEmpty(" bob ", null) = true * StringUtil.isAnyEmpty(" ", "bar") = false * StringUtil.isAnyEmpty("foo", "bar") = false * * @param css 待测字符序列 * @return 待测序列是否有任意一个为empty或null */ public static boolean isAnyEmpty(final CharSequence... css) { if (ArrayUtil.isEmpty(css)) { return true; } for (final CharSequence cs : css){ if (isEmpty(cs)) { return true; } } return false; } /** * 检测CharSequence中是否都不为empty ("")或null * * StringUtil.isNoneEmpty(null) = false * StringUtil.isNoneEmpty(null, "foo") = false * StringUtil.isNoneEmpty("", "bar") = false * StringUtil.isNoneEmpty("bob", "") = false * StringUtil.isNoneEmpty(" bob ", null) = false * StringUtil.isNoneEmpty(" ", "bar") = true * StringUtil.isNoneEmpty("foo", "bar") = true * * @param css 待测字符序列 * @return 待测序列是否都不为empty或null */ public static boolean isNoneEmpty(final CharSequence... css) { return !isAnyEmpty(css); } /** * 检测CharSequence中是否为whitespace空字符或empty ("")或null * * StringUtil.isBlank(null) = true * StringUtil.isBlank("") = true * StringUtil.isBlank(" ") = true * StringUtil.isBlank("bob") = false * StringUtil.isBlank(" bob ") = false * * @param cs 待测字符序列 * @return 待测序列是否为whitespace空字符或empty或null */ public static boolean isBlank(final CharSequence cs) { int strLen; if (cs == null || (strLen = cs.length()) == 0) { return true; } for (int i = 0; i < strLen; i++) { if (!Character.isWhitespace(cs.charAt(i))) { return false; } } return true; } /** * 检测CharSequence中是否不为whitespace空字符或empty ("")或null * * StringUtil.isNotBlank(null) = false * StringUtil.isNotBlank("") = false * StringUtil.isNotBlank(" ") = false * StringUtil.isNotBlank("bob") = true * StringUtil.isNotBlank(" bob ") = true * * @param cs 待测字符序列 * @return 待测序列是否不为whitespace空字符或empty或null */ public static boolean isNotBlank(final CharSequence cs) { return !isBlank(cs); } /** * 检测CharSequence中是否有任意一个为whitespace空字符或empty ("")或null * * StringUtil.isAnyBlank(null) = true * StringUtil.isAnyBlank(null, "foo") = true * StringUtil.isAnyBlank(null, null) = true * StringUtil.isAnyBlank("", "bar") = true * StringUtil.isAnyBlank("bob", "") = true * StringUtil.isAnyBlank(" bob ", null) = true * StringUtil.isAnyBlank(" ", "bar") = true * StringUtil.isAnyBlank("foo", "bar") = false * * @param css 待测字符序列 * @return 待测序列是否有任意一个为whitespace空字符或empty或null */ public static boolean isAnyBlank(final CharSequence... css) { if (ArrayUtil.isEmpty(css)) { return true; } for (final CharSequence cs : css){ if (isBlank(cs)) { return true; } } return false; } /** * 检测CharSequence中是否都不为whitespace空字符或empty ("")或null * * StringUtil.isNoneBlank(null) = false * StringUtil.isNoneBlank(null, "foo") = false * StringUtil.isNoneBlank(null, null) = false * StringUtil.isNoneBlank("", "bar") = false * StringUtil.isNoneBlank("bob", "") = false * StringUtil.isNoneBlank(" bob ", null) = false * StringUtil.isNoneBlank(" ", "bar") = false * StringUtil.isNoneBlank("foo", "bar") = true * * @param css 待测字符序列 * @return 待测序列是否都不为whitespace空字符或empty或null */ public static boolean isNoneBlank(final CharSequence... css) { return !isAnyBlank(css); } }