也许你两个都不知道,也许你除了isEmpty/isNotEmpty/isNotBlank/isBlank外,并不知道还有isAnyEmpty/isNoneEmpty/isAnyBlank/isNoneBlank的存在, come on ,让我们一起来探索org.apache.commons.lang3.StringUtils;这个工具类.

#isEmpty系列

StringUtils.isEmpty()

>>>是否为空. 可以看到 " " 空格是会绕过这种空判断,因为是一个空格,并不是严格的空值,会导致 isEmpty(" ")=false

  • StringUtils.isEmpty(null) = true
  • StringUtils.isEmpty("") = true
  • StringUtils.isEmpty(" ") = false
  • StringUtils.isEmpty(“bob”) = false
  • StringUtils.isEmpty(" bob ") = false

StringUtils.isNotEmpty()

>>>相当于不为空 , = !isEmpty()

public static boolean isNotEmpty(final CharSequence cs) {
    return !isEmpty(cs);
}

StringUtils.isAnyEmpty()

>>>是否有一个为空,只有一个为空,就为true.

  • StringUtils.isAnyEmpty(null) = true
  • StringUtils.isAnyEmpty(null, “foo”) = true
  • StringUtils.isAnyEmpty("", “bar”) = true
  • StringUtils.isAnyEmpty(“bob”, “”) = true
  • StringUtils.isAnyEmpty(" bob ", null) = true
  • StringUtils.isAnyEmpty(" ", “bar”) = false
  • StringUtils.isAnyEmpty(“foo”, “bar”) = false

StringUtils.isNoneEmpty()

>>>相当于!isAnyEmpty(css) , 必须所有的值都不为空才返回true

#isBank系列

StringUtils.isBlank()

>>> 是否为真空值(空格或者空值)

  • StringUtils.isBlank(null) = true
  • StringUtils.isBlank("") = true
  • StringUtils.isBlank(" ") = true
  • StringUtils.isBlank(“bob”) = false
  • StringUtils.isBlank(" bob ") = false

StringUtils.isNotBlank()

>>> 是否真的不为空,不是空格或者空值 ,相当于!isBlank();

StringUtils.isAnyBlank()

>>>是否包含任何真空值(包含空格或空值)

  • StringUtils.isAnyBlank(null) = true
  • StringUtils.isAnyBlank(null, “foo”) = true
  • StringUtils.isAnyBlank(null, null) = true
  • StringUtils.isAnyBlank("", “bar”) = true
  • StringUtils.isAnyBlank(“bob”, “”) = true
  • StringUtils.isAnyBlank(" bob ", null) = true
  • StringUtils.isAnyBlank(" ", “bar”) = true
  • StringUtils.isAnyBlank(“foo”, “bar”) = false

StringUtils.isNoneBlank()

>>>是否全部都不包含空值或空格

  • StringUtils.isNoneBlank(null) = false
  • StringUtils.isNoneBlank(null, “foo”) = false
  • StringUtils.isNoneBlank(null, null) = false
  • StringUtils.isNoneBlank("", “bar”) = false
  • StringUtils.isNoneBlank(“bob”, “”) = false
  • StringUtils.isNoneBlank(" bob ", null) = false
  • StringUtils.isNoneBlank(" ", “bar”) = false
  • StringUtils.isNoneBlank(“foo”, “bar”) = true

StringUtils的其他方法

可以参考官方的文档,里面有详细的描述,有些方法还是很好用的.
https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html

方法名

英文解释

中文解释

IsEmpty/IsBlank

checks if a String contains text

检查字符串是否包含文本

Trim/Strip

removes leading and trailing whitespace

删除前导和尾随空格

Equals/Compare

compares two strings null-safe

比较两个字符串是否为null安全的

startsWith

check if a String starts with a prefix null-safe

检查字符串是否以前缀null安全开头

endsWith

check if a String ends with a suffix null-safe

检查字符串是否以后缀null安全结尾

IndexOf/LastIndexOf/Contains

null-safe index-of checks

包含空安全索引检查

IndexOfAny/LastIndexOfAny/IndexOfAnyBut/LastIndexOfAnyBut

index-of any of a set of Strings

任意一组字符串的索引

ContainsOnly/ContainsNone/ContainsAny

does String contains only/none/any of these characters

字符串是否仅包含/无/这些字符中的任何一个

Substring/Left/Right/Mid

null-safe substring extractions

字符串安全提取

SubstringBefore/SubstringAfter/SubstringBetween

substring extraction relative to other strings -相对其他字符串的字符串提取


Split/Join

splits a String into an array of substrings and vice versa

将字符串拆分为子字符串数组,反之亦然

Remove/Delete

removes part of a String -删除字符串的一部分


Replace/Overlay

Searches a String and replaces one String with another

搜索字符串,然后用另一个字符串替换

Chomp/Chop

removes the last part of a String

删除字符串的最后一部分

AppendIfMissing

appends a suffix to the end of the String if not present

如果不存在后缀,则在字符串的末尾附加一个后缀

PrependIfMissing

prepends a prefix to the start of the String if not present

如果不存在前缀,则在字符串的开头添加前缀

LeftPad/RightPad/Center/Repeat

pads a String

填充字符串

UpperCase/LowerCase/SwapCase/Capitalize/Uncapitalize

changes the case of a String

更改字符串的大小写

CountMatches

counts the number of occurrences of one String in another

计算一个字符串在另一个字符串中出现的次数

IsAlpha/IsNumeric/IsWhitespace/IsAsciiPrintable

checks the characters in a String

检查字符串中的字符

DefaultString

protects against a null input String

防止输入字符串为空

Rotate

rotate (circular shift) a String

旋转(循环移位)字符串

Reverse/ReverseDelimited

reverses a String -反转字符串


Abbreviate

abbreviates a string using ellipsis or another given String

使用省略号或另一个给定的String缩写一个字符串

Difference

compares Strings and reports on their differences

比较字符串并报告其差异

LevenshteinDistance

the number of changes needed to change one String into another

将一个String转换为另一个String所需的更改次数