isNotEmpty() 和 isNotBlank() 的区别,字符串判空, StringUtils工具包 StringUtil工具类

news2024/11/15 21:23:00

目录

  • 1.StringUtils 和 StringUtil
    • StringUtils 的依赖:
    • StringUtils 的用法:
    • StringUtil 工具类
  • 2. isNotEmpty() 和 isNotBlank()

1.StringUtils 和 StringUtil

注:StringUtils 和 StringUtil 的区别(StringUtil为自定义工具类)

方法\工具类StringUtilsStringUtil
.isEmpty()成立成立
.isNotEmpty()成立不成立
.isBlank()成立不成立

StringUtils 的依赖:

 <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-lang3</artifactId>
      <version>3.5</version>
  </dependency>

StringUtils 的用法:

import org.apache.commons.lang3.StringUtils;

public class main {

    public static void main(String[] args) {
        String scheme = "";
        System.out.println(StringUtils.isBlank(scheme));    //true
        System.out.println(StringUtils.isEmpty(scheme));    //true
        System.out.println(StringUtils.isNotBlank(scheme)); //false
        System.out.println(StringUtils.isNotEmpty(scheme)); //false
    }
}

StringUtil 工具类

package com.ectit.utils;

import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 字符串格式化
 * </p>
 *
 * @author exsun
 * @since 2021-11-10
 */
@Slf4j
@Component
public class StringUtil {
    private StringUtil() {
    }

    public static boolean isEmpty(Object aObj) {
        if (aObj instanceof String) {
            return isEmpty((String) aObj);
        } else if (aObj instanceof Long) {
            return isEmpty((Long) aObj);
        } else if (aObj instanceof java.util.Date) {
            return isEmpty((java.util.Date) aObj);
        } else if (aObj instanceof Collection) {
            return isEmpty((Collection) aObj);
        } else if (aObj instanceof Map) {
            return isEmpty((Map) aObj);
        } else if (aObj != null && aObj.getClass().isArray()) {
            return isEmptyArray(aObj);
        } else {
            return isNull(aObj);
        }
    }

    private static boolean isEmptyArray(Object array) {
        int length = 0;
        if (array instanceof int[]) {
            length = ((int[]) array).length;
        } else if (array instanceof byte[]) {
            length = ((byte[]) array).length;
        } else if (array instanceof short[]) {
            length = ((short[]) array).length;
        } else if (array instanceof char[]) {
            length = ((char[]) array).length;
        } else if (array instanceof float[]) {
            length = ((float[]) array).length;
        } else if (array instanceof double[]) {
            length = ((double[]) array).length;
        } else if (array instanceof long[]) {
            length = ((long[]) array).length;
        } else if (array instanceof boolean[]) {
            length = ((boolean[]) array).length;
        } else {
            length = ((Object[]) array).length;
        }
        return length == 0;
    }

    public static boolean isEmpty(java.util.Date aDate) {
        return aDate == null;
    }

    public static boolean isEmpty(Long aLong) {
        return aLong == null;
    }

    public static boolean isEmpty(Map m) {
        return m == null || m.size() == 0;
    }

    public static boolean isEmpty(Collection c) {
        return c == null || c.isEmpty();
    }

    public static boolean isEmpty(String aStr) {
        return aStr == null || aStr.trim().isEmpty();
    }

    public static String trim(String aStr) {
        if (aStr == null) {
            return null;
        } else {
            return aStr.trim();
        }
    }

    public static boolean isNull(Object oStr) {
        return oStr == null;
    }

    public static boolean equals(String str1, String str2) {
        return str1 != null ? str1.equals(str2) : str2 == null;
    }

    public static boolean equals(Long l1, Long l2) {
        return l1 != null ? l1.equals(l2) : l2 == null;
    }

    public static boolean equals(Object obj1, Object obj2) {
        boolean result;
        if (obj1 != null) {
            result = obj1.equals(obj2);
        } else {
            result = (obj2 == null);
        }
        return result;
    }

    public static boolean equalsIgnoreCase(String str1, String str2) {
        return str1 != null ? str1.equalsIgnoreCase(str2) : str2 == null;
    }

    public static List<Integer> StringToList(String str) {
        List<Integer> list = new ArrayList<Integer>();
        if (StringUtils.isNotEmpty(str)) {
            String[] a = str.split(",");
            for (String b : a) {
                list.add(Integer.parseInt(b));
            }
        }
        return list;
    }
}

2. isNotEmpty() 和 isNotBlank()

isNotEmpty()isNotBlank()StringUtils 工具包下两个判断字符串是否为空的方法

  • isNotEmpty()
    判断某字符串是否非空
public static void main(String[] args) {
        System.out.println(StringUtils.isNotEmpty(null)); 	// = false;
        System.out.println(StringUtils.isNotEmpty("")); 	// false;
        System.out.println(StringUtils.isNotEmpty(" "));	// true;
        System.out.println(StringUtils.isNotEmpty("the 8"));// true;
        System.out.println(StringUtils.isNotEmpty("\t")); 	// true;
    }
  • isNotBlank()
    判断某字符串是否不为空 且长度不为0 且不由空白符(whitespace)构成,
public static void main(String[] args) {
        System.err.println(StringUtils.isNotBlank(null)); 		// false
        System.err.println(StringUtils.isNotBlank(""));			// false
        System.err.println(StringUtils.isNotBlank(" ")); 		// false
        System.err.println(StringUtils.isNotBlank("\t \n \f \r")); 	// false
        System.out.println(StringUtils.isNotBlank("\t")); 			// false
    }

在这里插入图片描述

  • 区别
StringUtils.isNotEmpty(str) 等价于:
str != null && str.length > 0

StringUtils.isNotBlank(str) 等价于:
str != null && str.length > 0 && str.trim().length > 0
即:判断是否 == null 的同时,还需要判断 length 是否 > 0

原文链接:https://blog.csdn.net/qq_38967583/article/details/109338200

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

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

相关文章

微信小程序——获取接口调用凭据access_token

问题背景 今天在搞一个微信小程序的时候&#xff0c;使用到了发布内容的问题&#xff0c;然后想使用微信请求接口&#xff0c;结果遇到了请求接口需要获取调用凭证access_token。 查看微信小程序开发文档 打开微信小程序开发文档后&#xff0c;打开服务端相关文档&#xff0…

电影《流浪地球2》观后感

趁着过年看了电影《流浪地球2》这部电影&#xff0c;同时也听说&#xff0c;今天好几部同期电影也不错&#xff0c;思考了一下&#xff0c;选择这部&#xff0c;记得以前有个笑话&#xff0c;说《流浪地球》成功开启了中国科幻的大门&#xff0c;而另一部电影成功将这部大门关起…

监听器、过滤器、拦截器,参考多篇文章整合而成,没有千篇一律的抽象回答!

参考文章1 过滤器、监听器、拦截器一、监听器二、过滤器1. POM.xml导包2. web.xml配置3. Filter过滤器编程三、拦截器1. 定义拦截器2. 配置加载拦截器3. 新建页面的存放地点四、过滤器、监听器、拦截器1. 三者作用2. 三者调用的时序&#xff08;监听器、过滤器、拦截器&#xf…

ESP32设备驱动-DS18B20温度传感器驱动

DS18B20温度传感器驱动 1、DS18B20驱动 DS18B20 是一款温度传感器,可用于各种简单的项目。 通过使用 One-Wire (I2C) 总线,可以将多个传感器连接到ESP32。 DS18B20 的成本也相对较低,只需要一个额外的 4k7 上拉电阻。在本文中,将创建一个基本示例,通过串行读取温度和输出…

java ssm酒店客房管理系统设计

目 录 1 绪 论 1 1.1 系统开发背景 1 1.2 开发意义 1 1.3 可行性分析 1 1.3.1 技术可行性分析 2 1.3.2 市场需求的可行性分析 2 1.4 国内外发展状况 2 1.5 本文中的章节介绍 2 2 开发技术简介 3 2.1 B/S简介 3 2.2 MYSQL的主要功能 3 …

竟然34%的孩子有腺样体肥大,保守还是手术?

腺样体肥大是一个常见的问题&#xff0c;患病率也越来越高。研究发现&#xff0c;34%的儿童和青少年患有这种疾病。腺样体肥大最容易导致鼻塞、口腔呼吸、儿童打鼾、睡眠影响等问题&#xff0c;严重会导致反复鼻窦炎、中耳炎、听力损伤&#xff0c;一些父母也知道它可能会导致孩…

idea插件restfultool和httpclient

restfultool使用测试controllerRestController RequestMapping("/api") Slf4j public class ApiController {GetMapping("test1")public String test1(RequestParam String msg) {return "hello world " msg;}GetMapping("test2/{msg}&quo…

【华为上机真题】密码要求

&#x1f388; 作者&#xff1a;Linux猿 &#x1f388; 简介&#xff1a;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我&#xff0c;关注我&#xff0c;有问题私聊&#xff01; &…

Pytorch——anaconda环境下安装GPU版本

首先查看自己 CUDA 搜索 点击 系统信息 可以看到&#xff0c;我的CUDA 是 11.1版本 随后上官网查找匹配的 pytorch 、torchvision、torchaudio 版本 Previous PyTorch Versions | PyTorch 然后直接对 .whl 文件进行下载 https://download.pytorch.org/whl/torch_stable.ht…

操作系统-进程管理

一、进程的组成和状态 1、操作系统的作用:通过资源管理提高计算机系统的效率改善人机界面向用户提供友好的工作环境。 2、操作系统的特征:并发性、共享性、虚拟性、不确定性。 3、操作系统的功能:进程管理、存储管理、文件管理、设备管理、作业管理。 4、操作系统的分类:批处理…

创业青年张继群:数智强农 现代农业加“数”前行

富贵险中求,也在险中丢,求时十之一,丢时十之九。 大丈夫行事,当摒弃侥幸之念,必取百炼成钢,厚积分秒之功,始得一鸣惊人。 央广网南宁1月11日消息(记者罗兰 通讯员张思颖)“经过此次比赛,在今后的推广中,我们会深入思考到底怎样才能把智慧农业做好,到底怎样才能真…

程序员为什么要写技术博客?都在哪些平台呢?

目录 一、程序员为什么要写技术博客&#xff1f; 1、真正掌握技术 2、没有人会那么在意你 3、珍惜时间 4、懒于思考&#xff0c;疏于总结 5、碎片化学习 6、优秀大神 7、更好的求职机会 8、努力的人一直都有 二、程序员都在哪些平台写技术博客呢&#xff1f; 1、git…

Python 采集免费代理,并检测其是否可用

本篇博客将采集互联网中公开代理 IP&#xff0c;并通过 IP 检测站点检测代理的可用性。 未来该内容将会被集成到 爬虫训练场 中。 &#x1f4b0;学习目录&#x1f4b0;Python 采集免费代理 IP模块准备与目标站点说明实战采集代理 IP 可用性检测对接站点为何使用代理 IP&#xf…

9. 使用SMTP发送邮件

1. SMTP协议 SMTP&#xff08;Simple Mail Transfer Protocol&#xff09;即简单邮件传输协议, 它是一组用于传送邮件的规则&#xff0c;由它来控制信件的中转方式。 SMTP是发送邮件的协议&#xff0c;python内置对SMTP的支持&#xff0c;可以发送纯文本邮件、HTML邮件以及带附…

python学习 --- 字符串基础

目录 一、字符串的驻留机制 1、驻留机制 2、驻留机制的几种情况&#xff08;使用交互模式&#xff09; 3、强制驻留 4、字符串驻留机制的优缺点 二、字符串的常用操作 1、字符串的查询操作 2、字符串大小写转换操作 3、字符串内容对齐操作 4、字符串劈分操作 5、判断…

【c语言进阶】动态内存管理知识大全(下)

&#x1f680;write in front&#x1f680; &#x1f4dc;所属专栏c语言学习 &#x1f6f0;️博客主页&#xff1a;睿睿的博客主页 &#x1f6f0;️代码仓库&#xff1a;&#x1f389;VS2022_C语言仓库 &#x1f3a1;您的点赞、关注、收藏、评论&#xff0c;是对我最大的激励和…

AxMath使用教程+常用符号与公式(持续更新中)

前言 这两天学了学Latex&#xff0c;主要是为了以后写毕业论文做铺垫&#xff0c;而且Latex在数学公式这一方面&#xff0c;要比Word方便许多&#xff0c;于是我就下载了一款国产的公式编辑器——AxMath。永久会员不贵&#xff0c;只要36元&#xff0c;而且软件很好用&#xf…

vue全家桶(一)基础知识

vue全家桶&#xff08;一&#xff09;1.vue基本使用2.vue模板语法1.差值表达式2.指令1.什么是指令2.数据绑定指令3.双向数据绑定4.事件绑定4.1click4.2事件修饰符4.3按键修饰符4.4属性绑定4.5-指令v-model的本质4.6 样式绑定4.6.1 class样式处理4.6.2 style样式处理4.7 分支循环…

Pytorch深度强化学习案例:基于DQN实现Flappy Bird游戏与分析

目录1 案例介绍2 构造深度Q网络3 经验回放与目标网络4 训练流程5 实验分析1 案例介绍 Flappy Bird是一款由来自越南的独立游戏开发者Dong Nguyen所开发的作品&#xff0c;于2013年5月24日上线。 在Flappy Bird中&#xff0c;玩家只需要用一根手指来操控&#xff1a;点击一次屏…

P49 BFC 块级格式化上下文 块级格式化上下文 BFC渲染区域: 创建BFC的元素,它的自动高度需要计算浮动元素. 高度塌陷例子

目录块级格式化上下文BFC渲染区域:创建BFC的元素&#xff0c;它的自动高度需要计算浮动元素.高度塌陷例子&#xff1a;第一种方法 clearfix::after第二种解决办法 :绝对定位第三种解决办法&#xff1a;overflow: scroll;第四种方法&#xff1a;clearfix hidden创建BFC的元素&am…