当前位置:网站首页>StringUtils的具体操作
StringUtils的具体操作
2022-08-10 07:57:00 【ABin-阿斌】
我是 ABin-阿斌:写一生代码,创一世佳话,筑一览芳华。 如果小伙伴们觉得文章有点 feel ,那就点个赞再走哦。
原文链接:https://sourl.cn/dRpJ6b
一、前言
- 在日常开发当中我们会使用很多的判空工具进行校验,今天我们就看看对字符串判空有哪些骚操作
- StringUtils 是我们比较常用的工具类了,也许你两个都不知道,也许你除了
isEmpty
/isNotEmpty
/isNotBlank
/isBlank
外并不知道还有isAnyEmpty
/isNoneEmpty
/isAnyBlank
/isNoneBlank
的存在。 那么,接下来让我们一起来探索org.apache.commons.lang3.StringUtils;
这个工具类。
二、正文
1、isEmpty 系列
1.1、StringUtils.isEmpty()
- 是否为空. 可以看到 " " 空格是会绕过这种空判断,因为是一个空格,并不是严格的空值,会导致
isEmpty(" ")=false
StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false
StringUtils.isEmpty("bob") = false
StringUtils.isEmpty(" bob ") = false
1.2、StringUtils.isNotEmpty()
相当于不为空 ,= !isEmpty()
public static boolean isNotEmpty(final CharSequence cs) {
return !isEmpty(cs);
}
1.3、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
/** * @param css the CharSequences to check, may be null or empty * @return {@code true} if any of the CharSequences are empty or null * @since 3.2 */
public static boolean isAnyEmpty(final CharSequence... css) {
if (ArrayUtils.isEmpty(css)) {
return true;
}
for (final CharSequence cs : css){
if (isEmpty(cs)) {
return true;
}
}
return false;
}
1.4、StringUtils.isNoneEmpty()
- 相当于
!isAnyEmpty(css)
,必须所有的值都不为空才返回 true
/** * <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) {
2、isBank 系列
2.1、StringUtils.isBlank()
- 是否为真空值(空格或者空值)
StringUtils.isBlank(null) = true
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank("bob") = false
StringUtils.isBlank(" bob ") = false
/** * <p>Checks if a CharSequence is whitespace, empty ("") or null.</p> * @param cs the CharSequence to check, may be null * @return {@code true} if the CharSequence is null, empty or whitespace * @since 2.0 * @since 3.0 Changed signature from isBlank(String) to isBlank(CharSequence) */
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)) == false) {
return false;
}
}
return true;
}
2.2、StringUtils.isNotBlank()
- 是否真的不为空,不是空格或者空值 ,相当于
!isBlank();
public static boolean isNotBlank(final CharSequence cs) {
return !isBlank(cs);
}
2.3、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;
}
2.4、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);
}
3、StringUtils 的其他方法
- 可以参考官方的文档,里面有详细的描述,有些方法还是很好用的。 StringUtils官方文档
方法名 | 英文解释 | 中文解释 |
---|---|---|
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 所需的更改次数 |
边栏推荐
- 全连接神经网络结构图,神经网络示意图怎么画
- 调试ZYNQ的u-boot 2017.3 不能正常启动,记录调试过程
- .NET-7.WPF learning experience summary
- 占位占位1
- Discussion on Chinese Fuzzy Retrieval in Databases
- Rust学习:6.5_复合类型之数组
- Day37 LeetCode
- Rust学习:6.4_复合类型之枚举
- The precise effect of network integration promotion outsourcing in the era of Internet of Things-Shenzhen Win-Win World News
- 初使jest 单元测试
猜你喜欢
90. (cesium house) cesium height monitoring events
WooCommerce installation and rest api usage
js函数聚合的三种实现方式
The precise effect of network integration promotion outsourcing in the era of Internet of Things-Shenzhen Win-Win World News
ATH10传感器读取温湿度
英国国家卫生服务遭受攻击,系统出现大面积故障
PHP笔记 28 29 30 31
Rust learning: 6.1_Slices of composite types
全连接神经网络结构图,神经网络示意图怎么画
自动化测试框架搭建 ---- 标记性能较差用例
随机推荐
phpstudy开机自启
CV-人脸识别-2018:ArcFace
占位占位1
Day37 LeetCode
delta method 介绍
自动化测试框架Pytest(一)——入门
.NET-8. My Thought Notes
Based on STC8G2K64S4 single-chip microcomputer to display analog photosensitive analog value through OLED screen
Rust learning: 6.4_ enumeration of composite types
预测股票涨跌看什么指标,如何预测明天股票走势
每日一题,二叉树中增加一行
Rust学习:6.3_复合类型之元组
AFNetworking概述和4.0的实践
数据库公共字段自动填充
Rust learning: 6.1_Slices of composite types
ATH10传感器读取温湿度
短视频同城流量宣传小魔推有何优势?如何给实体商家带来销量?
3.1-3.3 读书笔记
协同工具满足70%-90%的工作需求,成为企业香饽饽
[In-depth study of 4G/5G/6G topic-56]: L3 signaling control-5-radio bearer management