字符串是否为空(isEmpty和isBlank的区别)
以前只知道使用没注意具体区别,特此整理总结下。
我们常说的字符串为空,其实就是一个没有字符的空数组。比如:
String a = "";
a 就可以称为是一个空字符串。由于 String 在 Java 中底层是通过 char 数组去存储字符串的,所以空字符串对应的 char 数组表现形式为
private final char value[] = new char[0];
但实际工作中,我们需要对字符串进行一些校验,比如:是否为 null,是否为空,是否去掉空格、换行符、制表符等也不为空。比较简单的就是用 Str != null && Str.length() >0 来判断。
一、框架的工具类校验
我们一般都是通过一些框架的工具类去做这些判断,比如:apache 的 commons jar 包。比如 StringUtils.isEmpty(String str) 和 StringUtils.isBlank(String str)
isEmpty和isBlank的区别在于
isEmpty仅仅是判断空和长度为0字符串。
isBlank判断的是空,长度为0,空白字符(包括空格,制表符\t,换行符\n,换页符\f,回车\r)组成的字符串。
主要区别代码验证
StringUtils.isEmpty(" “) = false
StringUitls.isBlank(” ") = true
StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false
StringUtils.isEmpty("aaa") = false
StringUtils.isEmpty("\t \n \r \f") = falseStringUtils.isBlank(null) = true
StringUtils.isBlank("") = true
StringUitls.isBlank(" ") = true
StringUtils.isEmpty("aaa") = false
StringUtils.isEmpty("\t \n \r \f") = true
顺便在引包的时候,会出现org.apache.commons.lang和org.apache.commons.lang3两种选择,lang3是Apache Commons 团队发布的工具包,要求jdk版本在1.5以上,相对于lang来说完全支持java5的特性,废除了一些旧的API。
所以引用lang3就好啦。
二、注解@NotNull,@NotBlank,@Valid自动判定空值
@NotNull:不能为null,但可以为empty
@NotEmpty:不能为null,而且长度必须大于0
@NotBlank:只能作用在String上,不能为null,而且调用trim()后,长度必须大于0
举例如下
public class Order {@NotNull(message = "用户ID不能为空")private Long userID;@NotNull(message = "收货人地址id不能为空")private Long addressID;@NotBlank(message = "备注不为空")private String comment;}
参考文章
https://blog.csdn.net/liusa825983081/article/details/78246792
https://www.jb51.net/article/184134.html
https://blog.csdn.net/qq_39964694/article/details/81183701
http://www.360doc.com/content/18/0829/14/10072361_782131739.shtml
字符串是否为空(isEmpty和isBlank的区别)相关推荐
- java script isblank_java判断一个字符串是否为空,isEmpty和isBlank的区别
转载于:https://blog.csdn.net/liusa825983081/article/details/78246792 实际应用中,经常会用到判断字符串是否为空的逻辑 比较简单的就是用 S ...
- java判断一个字符串是否为空,isEmpty和isBlank的区别
实际应用中,经常会用到判断字符串是否为空的逻辑 比较简单的就是用 Str != null && Str.length() >0 来判断 其实很多java工具集都是有包装好的接口可 ...
- StringUtils isEmpty 和 isBlank 的区别 CollectionUtils判空的方法
本文讨论的 StringUtils 属于package org.apache.commons.lang; 文章目录 字符串判空检查 "" 和 null 的区别 isEmpty(St ...
- isEmpty和isBlank的区别
isEmpty和isBlank的区别在于 isEmpty仅仅是判断空和长度为0字符串 isBlank判断的是空,长度为0,空白字符(包括空格,制表符\t,换行符\n,换页符\f,回车\r)组成的字符串 ...
- 工作 3 年的同事不懂 isEmpty 和 isBlank 的区别,我真是醉了。
新来的同事,干了3年java,代码中 isEmpty 和 isBlank 的区别 都不知道,一顿瞎用.也许你两个都不知道,也许你除了isEmpty/isNotEmpty/isNotBlank/isBl ...
- 集合判断是否为空isEmpty()与==null的区别
前言 Java中的空指针异常确实是令人头疼的问题,今天抽空详细梳理下关于集合判断是否为空isEmpty()与==null的区别,尽量避免触发空指针异常. 集合之List isEmpty() 测试代码如 ...
- StringUtils类中 isEmpty() 与 isBlank()的区别
org.apache.commons.lang.StringUtils类提供了String的常用操作,最为常用的判空有如下两种isEmpty(String str)和isBlank(String st ...
- StringUtils 中 isEmpty 和 isBlank 的区别
在项目的工作学习中经常用到了 apache commons 中的 StringUtils 的 isBlank 和 isEmpty 来判断字符串是否为空,这个方法都是判断字符串是否为空做判断的,以至于 ...
- isEmpty()和isBlank()的区别
StringUtils工具类中的isEmpty方法和isBlank方法的区别: 一.isEmpty()和isBlank()的相同之处: 1. str.length()==0 class StringU ...
最新文章
- 【开放书】《命令行数据科学指南(第二版)》
- PHP IPC函数介绍---共享内存
- 基于STC8G1K08信标信号板设计
- HwBinder驱动篇-Android10.0 HwBinder通信原理(十)
- kubernetes dashboard backend源码剖析
- 该页面仅以HTML格式保存_第七节:框架搭建之页面静态化的剖析
- 求二叉树中以x为根的子树的深度_还在玩耍的你,该总结啦!(本周小结之二叉树)...
- 泛型类 0104 c#
- python dataframe去除重复项_python - Pandas DataFrame处理查找DataFrame中的重复项 - 堆栈内存溢出...
- kvm学习---制作win7虚拟机镜像,并配置网络
- Android Lint 代码检查工具的使用
- Linux网卡状态查看
- “鬼影”浅析 - 反病毒,信息安全,网络安全,反木马,病毒资讯平台,安全解决方案,电脑使用技巧,杀毒软件交流,anti-virus,民间反病毒联盟
- 《QTreeView表项实现排序的2种方式》:系列教程之九
- matlab现值与终值函数_Matlab金融工具箱中的主要功能函数
- mro列表_类的继承mro
- (技术类)中标麒麟linux终端命令操作之小白不知道的点(1)
- java二维码生成工具,可直接用于生产
- 基于Android studio有声听书系统 java音乐播放器系统
- linux下进入recovery mode 的单用户模式