【Java-Util】Hutool工具类判断字符串、对象为空的使用

这篇具有很好参考价值的文章主要介绍了【Java-Util】Hutool工具类判断字符串、对象为空的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

应用场景

判断字符串、包装类、集合、对象是否为空。

Hutool工具

字符串工具-StrUtil (hutool.cn)

1. 判断字符串是否为空(StrUtil的使用)

str1为null,str2是字符串,str3为空字符串,str4是包含不可见字符(空格等)的字符串。

使用StrUtil.isEmpty(str)StrUtil.isBlank(str)

/*
    测试Hutool工具类 StrUtil ObjectUtil
*/
String str1 = null; //这个判断为空肯定为true
String str2 = "null"; //这个判断为空肯定为false
String str3 = ""; //这个判断为空人们希望为true
String str4 = " "; //这是空白字符,对于isEmpty和isNull来说判断为true

System.out.println(StrUtil.isEmpty(str1)); //true
System.out.println(StrUtil.isEmpty(str2)); //false
System.out.println(StrUtil.isEmpty(str3)); //true
System.out.println(StrUtil.isEmpty(str4)); //false
System.out.println("**************************");

System.out.println(StrUtil.isBlank(str1)); //true
System.out.println(StrUtil.isBlank(str2)); //false
System.out.println(StrUtil.isBlank(str3)); //true
System.out.println(StrUtil.isBlank(str4)); //true

总结:

isBlank与 isEmpty(CharSequence) 的区别是: isBlank方法会校验空白字符,且性能相对于 isEmpty(CharSequence) 略慢。

2.判断包装类是否为空(ObjectUtil的使用)

// 对于包装类只有这两种情况,用哪个都可以
Integer i1 = null;
Integer i2 = 1;
// 判断指定对象是否为空,支持:
// 1. CharSequence
// 2. Map
// 3. Iterable
// 4. Iterator
// 5. Array
System.out.println(ObjectUtil.isEmpty(i1)); //true
System.out.println(ObjectUtil.isEmpty(i2)); //false
System.out.println("**************************");
// 检查对象是否为null 判断标准为:
// 1. == null
// 2. equals(null)
System.out.println(ObjectUtil.isNull(i1)); //true
System.out.println(ObjectUtil.isNull(i2)); //false

总结:对于包装类,用哪个都可以

3.判断集合是否为空(ObjectUtil的使用)

ArrayList list1 = null; //这个判断为空肯定为true
ArrayList<String> list2 = new ArrayList<>();
ArrayList<String> list3 = new ArrayList<>(List.of("list1","list2","list3")); //这个判断为空肯定为false
// 判断指定对象是否为空,支持:
// 1. CharSequence
// 2. Map
// 3. Iterable
// 4. Iterator
// 5. Array
System.out.println(ObjectUtil.isEmpty(list1)); //true
System.out.println(ObjectUtil.isEmpty(list2)); //true
System.out.println(ObjectUtil.isEmpty(list3)); //false
System.out.println("**************************");
// 检查对象是否为null 判断标准为:
// 1. == null
// 2. equals(null)
System.out.println(ObjectUtil.isNull(list1)); //true
System.out.println(ObjectUtil.isNull(list2)); //false
System.out.println(ObjectUtil.isNull(list3)); //false

总结:

这是ObjectUtil的isEmpty(obj)方法


public static boolean isEmpty(Object obj) {
		if (null == obj) {
			return true;
		}

		if (obj instanceof CharSequence) {
			return StrUtil.isEmpty((CharSequence) obj);
		} else if (obj instanceof Map) {
			return MapUtil.isEmpty((Map) obj);
		} else if (obj instanceof Iterable) {
			return IterUtil.isEmpty((Iterable) obj);
		} else if (obj instanceof Iterator) {
			return IterUtil.isEmpty((Iterator) obj);
		} else if (ArrayUtil.isArray(obj)) {
			return ArrayUtil.isEmpty(obj);
		}

		return false;
	}

对于ArrayList集合,该方法调用了ArrayUtil.isEmpty(obj),进行了length的判断。因此使用isEmpty判断集合为空。

4.判断对象是否为空(ObjectUtil的使用)

新建一个Person类

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Person{

    private Integer id;
    private String name;
}

测试

Person p1 =null;
Person p2 = new Person();
Person p3 = new Person(1,"张三");

System.out.println(ObjectUtil.isEmpty(p1)); //true
System.out.println(ObjectUtil.isEmpty(p2)); //false
System.out.println(ObjectUtil.isEmpty(p3)); //false
System.out.println("**************************");
// 检查对象是否为null 判断标准为:
// 1. == null
// 2. equals(null)
System.out.println(ObjectUtil.isNull(p1)); //true
System.out.println(ObjectUtil.isNull(p2)); //false
System.out.println(ObjectUtil.isNull(p3)); //false
System.out.println("**************************");

System.out.println(BeanUtil.isEmpty(p1)); //true
System.out.println(BeanUtil.isEmpty(p2)); //true
System.out.println(BeanUtil.isEmpty(p3)); //false

BeanUtil.isEmpty(obj)总结:

判断Bean是否为空对象,空对象表示本身为null或者所有属性都为null 此方法不判断static属性

Params: bean – Bean对象
ignoreFieldNames – 忽略检查的字段名

Returns:是否为空,true - 空 / false - 非空文章来源地址https://www.toymoban.com/news/detail-780907.html

到了这里,关于【Java-Util】Hutool工具类判断字符串、对象为空的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java 判断字符串为空的方法

    一.判断方法 if(s == null || s.equals(\\\"\\\")); if(s == null || s.length() == 0); if(s == null || s.isEmpty()); if (s == null || s == \\\"\\\"); 二.哪些情况会抛出空指针异常 s == null 是有必要存在的 String 类型为null, 而去进行 equals(String) 或 length() 等操作会抛出java.lang.NullPointerException. s==null 的顺序必须出现在前面

    2024年02月16日
    浏览(65)
  • Java 8 判断日期字符串是否符合指定格式

    可以使用 Java 8 的 DateTimeFormatter 类来判断日期字符串是否符合指定格式。具体代码如下: 如果你不想通过捕获异常的方式来判断日期字符串是否符合指定格式,也可以使用 DateTimeFormatter 类中的 parseUnresolved() 方法来进行解析。具体代码如下: 以上代码中,使用 parseUnresolved(

    2024年02月16日
    浏览(60)
  • java判断字符串是否包含英文,以及英文个数

    在Java中,可以使用正则表达式或字符遍历的方式来判断字符串是否包含英文字符,并统计英文字符的个数。 使用正则表达式判断字符串是否包含英文字符: 这里的正则表达式 “.[a-zA-Z]+.” 表示匹配包含至少一个英文字符的字符串。containsEnglish 的值为 true 表示字符串包含英

    2024年02月13日
    浏览(88)
  • java 怎么判断某个字符串是否在数组中

    在 Java 中,可以使用以下几种方法来判断一个字符串是否在数组中: 使用 for 循环遍历数组,逐个比较字符串是否相等。 使用 Arrays.asList() 将数组转换为列表,然后使用列表的 contains() 方法来判断字符串是否在数组中。 使用 Java 8 的 Stream API,使用 anyMatch() 方法来判断是否存

    2024年02月14日
    浏览(99)
  • java判断字符串不为null,也不为空

    1、StringUtils.isEmpty(str) ( 推荐 , 我使用这种方法 ) 2、StringUtils.isNotBlank(str) 1、空串\\\"\\\"是长度为0的字符串,它有自己的串长度(0)和内容(空),判断一个字符串为空的方法: 或 2、 null串表示目前没有任何对象与该变量关联,检查一个字符串是否为null的方法: 参考:jav

    2024年02月11日
    浏览(64)
  • 【==是判断相等吗?---错辣】C++和JAVA中判断字符串值相等的区别

    参考文章:这里;这里;这里 C++中的 string 类型可以使用 == 和 != 来判断两个字符串的值是否相等;而JAVA不行,JAVA中 == 和 != 是用来 判断两个字符串的地址是否相同 (或者说是 对象是否相同 ,即 是否为同一个对 象)。 运行结果 结果解释 :C++中可以利用 == 来判断两个字符

    2023年04月21日
    浏览(59)
  • java 判断字符串中有汉字 (常用正则表达式)

    今天在开发中碰到了判断字符串中是否有汉字的问题,方便起见,记录下来以便后期查看。 1、判断汉字 2、判断数字 3、常用的正则表达式( 通过 Java常用正则表达式_正则表达式0到9_欧尼熊不懂的博客-CSDN博客) (1)校验数字的正则表达式 (2)校验字符的正则表达式 (

    2024年02月11日
    浏览(53)
  • Hutool 生成随机数和随机字符串

    官方文档: https://www.hutool.cn/docs/#/core/工具类/随机工具-RandomUtil 整理完毕,完结撒花~

    2024年02月16日
    浏览(58)
  • 手把手教你5种方法实现Java判断字符串是否为数字

    方法一:用JAVA自带的函数 public static boolean isNumeric(String str){ for (int i = str.length();--i=0;){ if (!Character.isDigit(str.charAt(i))){ return false; } } return true; } 方法一通过遍历字符串的每一个字符,并使用 Character.isDigit() 函数检查每一个字符是否是数字。如果字符串中所有字符都是数字,那

    2024年02月07日
    浏览(72)
  • Java 编程实例:相加数字、计算单词数、字符串反转、元素求和、矩形面积及奇偶判断

    示例 输出 解释 首先,声明两个 int 类型的变量 x 和 y ,并分别赋值为 5 和 6。 然后,使用 + 运算符将 x 和 y 相加,并将结果赋给变量 sum 。 最后,使用 System.out.println() 方法打印 sum 的值。 示例 输出 解释 首先,导入 Scanner 类,用于读取用户输入。 然后,声明三个 int 类型的

    2024年03月19日
    浏览(88)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包