【JAVA基础】StringUtils.isEmpty、StringUtils.isBlank()、Objects.isNull()三者区别

news2024/9/22 15:31:53

📝个人主页🌹:个人主页
⏩收录专栏⏪:日常经验
🌹🌹期待您的关注 🌹🌹,让我们共同进步!
在这里插入图片描述

总是区分不清楚这几个的差别:我们来直接验证一下:

package com.atguigu.signcenter.controller;

import com.atguigu.signcenter.annotation.ExistsApiToken;
import com.atguigu.signcenter.annotation.VerifySign;
import com.atguigu.signcenter.constant.ReqParameterConstant;
import com.atguigu.signcenter.entity.User1;
import com.atguigu.signcenter.service.SecurityUtilTestService;
import com.atguigu.signcenter.util.testUtil;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import java.io.UnsupportedEncodingException;
import java.util.*;

/**
 *    原文链接:https://blog.csdn.net/weixin_47560078/article/details/118222785
 *   @author: jd
 * @create: 2024-07-30
 */

@Slf4j
@Controller
public class TestController {

    public static void main(String[] args) {
        //判断某字符串是否为空或长度为0或由空白符(whitespace)构成
        System.out.println("=========isBlank=========");
        System.out.println("StringUtils.isBlank(null) = " + StringUtils.isBlank(null)); //true
        System.out.println("StringUtils.isBlank(\"\") = " + StringUtils.isBlank("")); //true
        System.out.println("StringUtils.isBlank(\" \") = " + StringUtils.isBlank(" ")); //true
        System.out.println("StringUtils.isBlank(\"\\t \\n \\f \\r\") = " + StringUtils.isBlank("\t \n \f \r")); // true
        System.out.println("StringUtils.isBlank(\"\\b\") = " + StringUtils.isBlank("\b")); //false
        System.out.println("StringUtils.isBlank(\"bob\") = " + StringUtils.isBlank("bob")); //false
        System.out.println("StringUtils.isBlank(\" bob \") = " + StringUtils.isBlank(" bob ")); //false
        System.out.println("=========isNotBlank=========");
        //判断某字符串是否不为空且长度不为0且不由空白符(whitespace)构成,等于!isBlank(String str)
        System.out.println("StringUtils.isNotBlank(null) = " + StringUtils.isNotBlank(null));
        System.out.println("StringUtils.isNotBlank(\"\") = " + StringUtils.isNotBlank(""));
        System.out.println("StringUtils.isNotBlank(\" \") = " + StringUtils.isNotBlank(" "));
        System.out.println("StringUtils.isNotBlank(\" \") = " + StringUtils.isNotBlank(" "));
        System.out.println("StringUtils.isNotBlank(\"\\t \\n \\f \\r\") = " + StringUtils.isNotBlank("\t \n \f \r"));
        System.out.println("StringUtils.isNotBlank(\"\\b\") = " + StringUtils.isNotBlank("\b"));
        System.out.println("StringUtils.isNotBlank(\"bob\") = " + StringUtils.isNotBlank("bob"));
        System.out.println("StringUtils.isNotBlank(\" bob \") = " + StringUtils.isNotBlank(" bob "));


        System.out.println("=========isEmpty=========");
        //判断某字符串是否为空,为空的标准是str==null或str.length()==0
        System.out.println("StringUtils.isEmpty(null) = " + StringUtils.isEmpty(null)); //true
        System.out.println("StringUtils.isEmpty(\"\") = " + StringUtils.isEmpty("")); //true
        System.out.println("StringUtils.isEmpty(\" \") = " + StringUtils.isEmpty(" ")); //false
        System.out.println("StringUtils.isEmpty(\"bob\") = " + StringUtils.isEmpty("bob")); //false
        System.out.println("StringUtils.isEmpty(\" bob \") = " + StringUtils.isEmpty(" bob ")); //false


        //只会检查传入的对象是否为null。如果对象为null,则返回true,否则返回false
        System.out.println("Objects.isNull(null) = " + Objects.isNull(null)); //true
        System.out.println("Objects.isNull(\"\") = " + Objects.isNull("")); //false
        System.out.println("Objects.isNull(\"aaa\") = " + Objects.isNull("aaa")); //false

        

    }


}

结果

=========isBlank=========
StringUtils.isBlank(null) = true
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank("\t \n \f \r") = true
StringUtils.isBlank("\b") = false
StringUtils.isBlank("bob") = false
StringUtils.isBlank(" bob ") = false
=========isNotBlank=========
StringUtils.isNotBlank(null) = false
StringUtils.isNotBlank("") = false
StringUtils.isNotBlank(" ") = false
StringUtils.isNotBlank(" ") = false
StringUtils.isNotBlank("\t \n \f \r") = false
StringUtils.isNotBlank("\b") = true
StringUtils.isNotBlank("bob") = true
StringUtils.isNotBlank(" bob ") = true
=========isEmpty=========
StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false
StringUtils.isEmpty("bob") = false
StringUtils.isEmpty(" bob ") = false
=========Objects.isNull=========
Objects.isNull(null) = true
Objects.isNull("") = false
Objects.isNull("aaa") = false

总结:
我这里对于判空和判断非空都验证了,其实只是记住一方面即可。
判断是null的范围,从粗到细 isBlank < isEmpty < isNUll
//所以总结一下,isBlank的筛选是最粗的,对于null “” “ ” 都是空的,这三个区分不出来,都是true
// isEmpty 则能把null 和“” 这两个区分不出来,都是 true
//isNull 则是最细的 只有真正的null是true,否则是false

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2111230.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【机械手控制】基于matlab 4-RPR平面机械手的可操作性、工作空间分析和路径跟踪【含Matlab源码 7422期】

✅博主简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;Matlab项目合作可私信或扫描文章底部QQ二维码。 &#x1f34e;个人主页&#xff1a;Matlab凤凰涅槃 &#x1f3c6;代码获取方式&#xff1a;扫描文章底部QQ二维码 ⛳️座右铭&…

U盘数据危机应对:详解文件或目录损坏无法读取的恢复之道

在数字化信息日益重要的今天&#xff0c;U盘作为便携存储设备&#xff0c;几乎成为了每个人工作和生活中的必需品。然而&#xff0c;当U盘突然遭遇文件或目录损坏且无法读取的困境时&#xff0c;我们往往面临数据丢失的风险&#xff0c;这不仅影响工作效率&#xff0c;还可能造…

【开学季】智慧城市入门教程福利放送,零基础入门三维WebGIS

步入九月&#xff0c;不知道有多少同学还没享受够假期 就要开始返校“直面天命” 各种大朋友、小朋友&#xff1b;大一萌新、学长学姐们也 都陆陆续续返校 小编整理了新中地公开课教程 帮助大家丝滑入门大学学习 这份开学礼包&#xff0c;请注意查收&#xff01; WebGIS三…

Xinstall如何用一个包打通多个推广路径?

在移动互联网时代&#xff0c;App的推广和运营对于开发者而言是一项至关重要的任务。然而&#xff0c;面对繁多的推广渠道&#xff0c;如何高效地管理和评估各个渠道的效果&#xff0c;成为了摆在开发者面前的一大难题。今天&#xff0c;我们就来科普一下&#xff0c;如何通过X…

13条自动化测试框架设计原则

1、代码规范 测试框架随着业务推进&#xff0c;必然会涉及代码的二次开发&#xff0c;所以代码编写应符合通用规范&#xff0c;代码命名符合业界标准&#xff0c;并且代码层次清晰。特别在大型项目、多人协作型项目中&#xff0c;如果代码没有良好的规范&#xff0c;那么整个框…

计算机毕业设计选题推荐-博物馆管理系统-Java/Python项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

Helm Deploy Online Rancher v2.9.1

文章目录 准备安装查看下载 准备 $ kubectl get node NAME STATUS ROLES AGE VERSION kube-master01 Ready control-plane 19d v1.29.5 kube-node01 Ready <none> 19d v1.29.5 kube-node02 Ready <none&…

嵌入式学习(链式栈和链式队列)

栈&#xff08;stack&#xff09;是一种只能在一端插入或删除操作的线性表。 栈只能在表尾插入或删除元素&#xff0c;表尾就是栈的栈顶&#xff0c;表头就是栈底 栈的主要特点&#xff1a;LIFO(last in first out) "后进先出" 栈可以采用顺序存储结构(顺序栈) 和…

备战秋招60天算法挑战,Day33

题目链接&#xff1a; https://leetcode.cn/problems/longest-increasing-subsequence/ 视频题解&#xff1a; https://www.bilibili.com/video/BV1RRvheFEog/ LeetCode 300. 最长递增子序列 题目描述 给你一个整数数组nums &#xff0c;找到其中最长严格递增子序列的长度。 …

Vue——day10之指令

目录 内置指令 v-text指令 v-html指令 v-cloak指令 v-once指令 v-pre指令 整体代码示例 自定义指令 整体代码演示 总结 内置指令 v-text指令 v-text指令是Vue.js中的一种指令&#xff0c;它用于将元素的textContent设置为指定的值。它的使用方式是在元素上添加v-tex…

JavaScript( 简介)

目录 含义 实例 js代码位置 1 外部引入js文件 2 在 HTML 中&#xff0c;JavaScript 代码必须位于 标签之间。 小结 含义 js是一门脚本语言&#xff0c;能够改变HTML内容 实例 getElementById() 是多个 JavaScript HTML 方法之一。 本例使用该方法来“查找” id"d…

大数据 - 行式存储与列式存储

为什么要区分&#xff1f; 大多数数据库系统存储一组数据记录&#xff0c;这些记录由表中的列和行组成。表可以水平分区&#xff08;将属于同一行的值存储在一起&#xff09;&#xff0c;也可以垂直分区&#xff08;将属于同一列的值存储在一起&#xff09;。 数据库用于存储、…

zdppy+vue3+onlyoffice文档管理系统实战 20240906 上课笔记 整合权限校验中间件

基于角色方法的中间件基本用法 import zdppy_api as api import zdppy_apimidauthasync def index(request):return api.resp.success()async def login(request):token zdppy_apimidauth.get_role_token(role"admin")return api.resp.success(token)auth_dict {&…

单例模式的总结

常规模式:有属性/构造方法/普通方法,也可以在类中执行主方法,也可以在test类中执行主方法 单例模式是什么? 单例模式:类只有1个对象;保证一个类仅有一个实例,并提供一个访问它的全局访问点。单例模式是在内存中 仅会创建一次对象 的设计模式特点: 成员是 私有的静态的 构…

手机扬声器音量总是不够大?试试“扬声器助推器”吧

手机的扬声器音量总是不够大&#xff0c;尤其是在嘈杂的环境中&#xff0c;音乐和视频的声音总是不太清晰。直到我发现了这款“扬声器助推器”&#xff0c;我的手机音质瞬间提升了好几个档次。 软件简介&#xff1a; “扬声器助推器”利用先进的音频处理技术&#xff0c;能够…

中国各银行流动性比例数据(2000-2022年)

介绍中国银行业2000年至2022年间的流动性比例数据&#xff0c;涵盖500多家银行&#xff0c;包括城市商业银行、城镇银行、大型商业银行、股份制银行、民营银行、农村合作银行、农村商业银行、农村信用社等。这些数据对于理解中国银行业的流动性状况至关重要&#xff0c;有助于投…

ansible+awx搭建

1、环境介绍 操作系统版本&#xff1a;龙蜥os 8.9 docker 版本&#xff1a;26.0.2 python版本&#xff1a;3.11.9 ansible版本&#xff1a;2.16.6 awx版本&#xff1a;24.2.0 2、安装docker 设置软件源 yum install -y yum-utilsyum-config-manager \--add-repo \https://mirr…

【生日视频制作】长腿美女模特坐在椅子上打招呼大屏幕AE模板修改文字软件生成器教程特效素材【AE模板】

生日视频制作教程长腿美女模特坐在椅子上打招呼大屏幕文字AE模板修改文字特效广软件告生成神器素材祝福玩法AE模板工程 怎么如何做的【生日视频制作】长腿美女模特坐在椅子上打招呼大屏幕AE模板修改文字软件生成器教程特效素材【AE模板】 生日视频制作步骤&#xff1a; 安装A…

Google play最新政策更新和重要提醒

我们都知道&#xff0c;谷歌会定期更新其政策&#xff0c;而政策的变更通常对开发者及其团队的要求会更为严格&#xff0c;也会增加应用上架的一些限制条件&#xff0c;以此提高应用在谷歌商店的质量。 一起来看看Google play最近的一些政策更新和需要注意的地方。 新政策要求 …

2024高教社杯全国大学生数学建模竞赛C题精美可视化(python代码)

2024高教社杯全国大学生数学建模竞赛C题原创python代码 C题题目&#xff1a;农作物的种植策略 先给大家看看图吧&#xff1a; #描述性统计分析 import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns from scipy.stats import kurt…