isEmpty 和 isBlank 的用法区别,超详细总结

插: AI时代,程序员或多或少要了解些人工智能,前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家(前言 – 人工智能教程 )

坚持不懈,越努力越幸运,大家一起学习鸭~~~

也许你两个都不知道,也许你除了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
/**
  *
  * <p>NOTE: This method changed in Lang version 2.0.
  * It no longer trims the CharSequence.
  * That functionality is available in isBlank().</p>
  *
  * @param cs  the CharSequence to check, may be null
  * @return {@code true} if the CharSequence is empty or null
  * @since 3.0 Changed signature from isEmpty(String) to isEmpty(CharSequence)
*/
public static boolean isEmpty(final CharSequence cs) {
   return cs == null || cs.length() == 0;
}

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

如果你近期准备面试跳槽,建议在ddkk.com在线刷题,涵盖 一万+ 道 Java 面试题,几乎覆盖了所有主流技术面试题,还有市面上最全的技术五百套,精品系列教程,免费提供。

/**
 * <p>Checks if none of the CharSequences are empty ("") or null.</p>
 *
 * <pre>
 * StringUtils.isNoneEmpty(null)             = false
 * StringUtils.isNoneEmpty(null, "foo")      = false
 * StringUtils.isNoneEmpty("", "bar")        = false
 * StringUtils.isNoneEmpty("bob", "")        = false
 * StringUtils.isNoneEmpty("  bob  ", null)  = false
 * StringUtils.isNoneEmpty(" ", "bar")       = true
 * StringUtils.isNoneEmpty("foo", "bar")     = true
 * </pre>
 *
 * @param css  the CharSequences to check, may be null or empty
 * @return {@code true} if none of the CharSequences are empty or null
 * @since 3.2
 */
public static boolean isNoneEmpty(final CharSequence... css) {

  return !isAnyEmpty(css);
}

#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
/**
 * <p>Checks if any one of the CharSequences are blank ("") or null and not whitespace only..</p>
 * @param css  the CharSequences to check, may be null or empty
 * @return {@code true} if any of the CharSequences are blank or null or whitespace only
 * @since 3.2
 */
public static boolean isAnyBlank(final CharSequence... css) {


  if (ArrayUtils.isEmpty(css)) {


    return true;
  }
  for (final CharSequence cs : css){


    if (isBlank(cs)) {


      return true;
    }
  }
  return 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
/**
 * <p>Checks if none of the CharSequences are blank ("") or null and whitespace only..</p>
 * @param css  the CharSequences to check, may be null or empty
 * @return {@code true} if none of the CharSequences are blank or null or whitespace only
 * @since 3.2
 */
public static boolean isNoneBlank(final CharSequence... css) {


  return !isAnyBlank(css);
}

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所需的更改次数

  • 14
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值