StringUtil.java 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. package com.fuzamei.util;
  2. public final class StringUtil {
  3. private StringUtil() {
  4. throw new AssertionError("不能实例化 StringUtil");
  5. }
  6. // Empty checks
  7. //-----------------------------------------------------------------------
  8. /**
  9. * 检查CharSequence是否为empty ("")或null
  10. *
  11. * StringUtil.isEmpty(null) = true
  12. * StringUtil.isEmpty("") = true
  13. * StringUtil.isEmpty(" ") = false
  14. * StringUtil.isEmpty("bob") = false
  15. * StringUtil.isEmpty(" bob ") = false
  16. *
  17. * @param cs 待测字符序列
  18. * @return 待测序列是否为empty或null
  19. */
  20. public static boolean isEmpty(final CharSequence cs) {
  21. return cs == null || cs.length() == 0;
  22. }
  23. /**
  24. * 检查CharSequence是否不为empty ("")或null
  25. *
  26. * StringUtil.isNotEmpty(null) = false
  27. * StringUtil.isNotEmpty("") = false
  28. * StringUtil.isNotEmpty(" ") = true
  29. * StringUtil.isNotEmpty("bob") = true
  30. * StringUtil.isNotEmpty(" bob ") = true
  31. *
  32. * @param cs 待测字符序列
  33. * @return 待测序列是否不为empty或null
  34. */
  35. public static boolean isNotEmpty(final CharSequence cs) {
  36. return !isEmpty(cs);
  37. }
  38. /**
  39. * 检测CharSequence中是否有任意一个为empty ("")或null
  40. *
  41. * StringUtil.isAnyEmpty(null) = true
  42. * StringUtil.isAnyEmpty(null, "foo") = true
  43. * StringUtil.isAnyEmpty("", "bar") = true
  44. * StringUtil.isAnyEmpty("bob", "") = true
  45. * StringUtil.isAnyEmpty(" bob ", null) = true
  46. * StringUtil.isAnyEmpty(" ", "bar") = false
  47. * StringUtil.isAnyEmpty("foo", "bar") = false
  48. *
  49. * @param css 待测字符序列
  50. * @return 待测序列是否有任意一个为empty或null
  51. */
  52. public static boolean isAnyEmpty(final CharSequence... css) {
  53. if (ArrayUtil.isEmpty(css)) {
  54. return true;
  55. }
  56. for (final CharSequence cs : css){
  57. if (isEmpty(cs)) {
  58. return true;
  59. }
  60. }
  61. return false;
  62. }
  63. /**
  64. * 检测CharSequence中是否都不为empty ("")或null
  65. *
  66. * StringUtil.isNoneEmpty(null) = false
  67. * StringUtil.isNoneEmpty(null, "foo") = false
  68. * StringUtil.isNoneEmpty("", "bar") = false
  69. * StringUtil.isNoneEmpty("bob", "") = false
  70. * StringUtil.isNoneEmpty(" bob ", null) = false
  71. * StringUtil.isNoneEmpty(" ", "bar") = true
  72. * StringUtil.isNoneEmpty("foo", "bar") = true
  73. *
  74. * @param css 待测字符序列
  75. * @return 待测序列是否都不为empty或null
  76. */
  77. public static boolean isNoneEmpty(final CharSequence... css) {
  78. return !isAnyEmpty(css);
  79. }
  80. /**
  81. * 检测CharSequence中是否为whitespace空字符或empty ("")或null
  82. *
  83. * StringUtil.isBlank(null) = true
  84. * StringUtil.isBlank("") = true
  85. * StringUtil.isBlank(" ") = true
  86. * StringUtil.isBlank("bob") = false
  87. * StringUtil.isBlank(" bob ") = false
  88. *
  89. * @param cs 待测字符序列
  90. * @return 待测序列是否为whitespace空字符或empty或null
  91. */
  92. public static boolean isBlank(final CharSequence cs) {
  93. int strLen;
  94. if (cs == null || (strLen = cs.length()) == 0) {
  95. return true;
  96. }
  97. for (int i = 0; i < strLen; i++) {
  98. if (!Character.isWhitespace(cs.charAt(i))) {
  99. return false;
  100. }
  101. }
  102. return true;
  103. }
  104. /**
  105. * 检测CharSequence中是否不为whitespace空字符或empty ("")或null
  106. *
  107. * StringUtil.isNotBlank(null) = false
  108. * StringUtil.isNotBlank("") = false
  109. * StringUtil.isNotBlank(" ") = false
  110. * StringUtil.isNotBlank("bob") = true
  111. * StringUtil.isNotBlank(" bob ") = true
  112. *
  113. * @param cs 待测字符序列
  114. * @return 待测序列是否不为whitespace空字符或empty或null
  115. */
  116. public static boolean isNotBlank(final CharSequence cs) {
  117. return !isBlank(cs);
  118. }
  119. /**
  120. * 检测CharSequence中是否有任意一个为whitespace空字符或empty ("")或null
  121. *
  122. * StringUtil.isAnyBlank(null) = true
  123. * StringUtil.isAnyBlank(null, "foo") = true
  124. * StringUtil.isAnyBlank(null, null) = true
  125. * StringUtil.isAnyBlank("", "bar") = true
  126. * StringUtil.isAnyBlank("bob", "") = true
  127. * StringUtil.isAnyBlank(" bob ", null) = true
  128. * StringUtil.isAnyBlank(" ", "bar") = true
  129. * StringUtil.isAnyBlank("foo", "bar") = false
  130. *
  131. * @param css 待测字符序列
  132. * @return 待测序列是否有任意一个为whitespace空字符或empty或null
  133. */
  134. public static boolean isAnyBlank(final CharSequence... css) {
  135. if (ArrayUtil.isEmpty(css)) {
  136. return true;
  137. }
  138. for (final CharSequence cs : css){
  139. if (isBlank(cs)) {
  140. return true;
  141. }
  142. }
  143. return false;
  144. }
  145. /**
  146. * 检测CharSequence中是否都不为whitespace空字符或empty ("")或null
  147. *
  148. * StringUtil.isNoneBlank(null) = false
  149. * StringUtil.isNoneBlank(null, "foo") = false
  150. * StringUtil.isNoneBlank(null, null) = false
  151. * StringUtil.isNoneBlank("", "bar") = false
  152. * StringUtil.isNoneBlank("bob", "") = false
  153. * StringUtil.isNoneBlank(" bob ", null) = false
  154. * StringUtil.isNoneBlank(" ", "bar") = false
  155. * StringUtil.isNoneBlank("foo", "bar") = true
  156. *
  157. * @param css 待测字符序列
  158. * @return 待测序列是否都不为whitespace空字符或empty或null
  159. */
  160. public static boolean isNoneBlank(final CharSequence... css) {
  161. return !isAnyBlank(css);
  162. }
  163. }