当前位置: 首页 > news >正文

isEmpty() 和 isBlank()的区别

isEmpty() 和 isBlank()的区别

平时自己开发的时候没有注意到这个地方,直到实习的时候代码审查的时候发现其用法上两者的不同.

isEmpty()

public static boolean isEmpty(String str) {return str == null || str.length() == 0;
}

isBlank()

public static boolean isBlank(String str) {int strLen;if (str != null && (strLen = str.length()) != 0) {for(int i = 0; i < strLen; ++i) {// 判断字符是否为空格、制表符、tabif (!Character.isWhitespace(str.charAt(i))) {return false;}}return true;} else {return true;}
}

isWhitespace()

用于判断是否为空白字符。

    public static boolean isWhitespace(char ch) {return isWhitespace((int)ch);}
判断是空白字符的标准:Unicode space character(SPACE_SEPARATOR、LINE_SEPARATOR、PARAGRAPH_SEPARATOR)
\t:制表符。
\n:换行符。
\u000B:线路表符号。
\f:换页符。
\r:回车。
\u001C:文件分隔符。
\u001D:“成组分离”符。
\u001E:记录分隔符号。
\u001F:单元分隔符。

null和空字符串的区别

  • null表示一个变量没有引用任何对象,而空字符串表示一个字符串变量引用了一个长度为0的字符串。

  • null:表示一个变量没有引用任何对象。也就是说,这个变量还没有被分配内存

  • 空字符串:表示一个字符串变量引用了一个长度为0的字符串

String str = ""; //空字符串

实例

isEmpty(null)------true
isEmpty("")------true  //空字符串
isEmpty(" ")------false //
isEmpty("abc")----false
isBlank(null)------true
isBlank("")------true
isBlank(" ")------true 
isBlank("\t \n \f \r")------true      //制表符、换行符、换页符和回车符
isBlank("abc")------false

参考

参考:https://blog.csdn.net/b635781894/article/details/107384059?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522172161473916800178560732%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=172161473916800178560732&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-2-107384059-null-null.142v100pc_search_result_base3&utm_term=iswhitespace%E4%BB%80%E4%B9%88%E6%84%8F%E6%80%9D&spm=1018.2226.3001.4187

https://blog.csdn.net/lyj15012351173/article/details/135755530?ops_request_misc=&request_id=&biz_id=102&utm_term=Java%E7%A9%BA%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%92%8Cnull&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-1-135755530.142v100pc_search_result_base3&spm=1018.2226.3001.4187

http://www.lryc.cn/news/405497.html

相关文章:

  • scrapy生成爬虫数据为excel
  • vscode debug C++无法输入问题
  • MODBUS tcp学习总结
  • 【第一天】计算机网络 TCP/IP模型和OSI模型,从输入URL到页面显示发生了什么
  • 发现FionaAI:免费体验最新的GPT-4o Mini模型!
  • Linux Gui 窗口对话和窗口操作
  • 人工智能驾驶技术:引领未来道路
  • 管理的核心是管人,管人的核心就是这3条,看懂的是高手
  • 代码解读:Diffusion Models中的长宽桶技术(Aspect Ratio Bucketing)
  • Linux下如何使用GitLab进行团队协作
  • 无法连接到internet怎么办?已连接但无internet访问,其实并不难
  • 建投数据人力资源系列产品获得欧拉操作系统及华为鲲鹏技术认证书
  • 【iOS】——属性关键字的底层原理
  • 电影类平台如何选择服务器
  • 递归神经网络(RNN)及其预测和分类的Python和MATLAB实现
  • 以flask为后端的博客项目——星云小窝
  • CUDA编程02 - 数据并行介绍
  • Android 视频音量图标
  • VScode 修改 Markdown Preview Enhanced 字体以及大纲编号
  • TCP的FIN报文可否携带数据
  • 【GoF23种设计模式+简单工厂模式】
  • 北醒单点激光雷达更改id和波特率以及Ubuntu20.04下CAN驱动
  • 【线性代数】矩阵变换
  • 聚焦智慧出行,TDengine 与路特斯科技再度携手
  • 虚拟机迁移报错:虚拟机版本与主机“x.x.x.x”的版本不兼容
  • 【教程】vscode添加powershell7终端
  • 如何乘上第四次工业革命的大船
  • RKNN执行bash ./build-linux_RK3566_RK3568.sh 报错
  • Linux常用命令整理
  • python 闭包、装饰器