StringUtils.hasText()和isEmpty(),==null区别

方法null""" ""abc"说明所属库
str == nulltruefalsefalsefalse仅检查 nullJava 原生
str.isEmpty()NPEtruefalsefalse不检查空白(长度=0)需要str不为空Java 原生 (JDK 1.6+)
str.isBlank()NPEtruetruefalse

检查空白(Java 11 原生)

需要str不为空

Java 原生 (JDK 11+)
StringUtils.isEmpty(str)truetruefalsefalse检查 null 或空字符串("")Spring
StringUtils.hasText(str)falsefalsefalsetrue至少含有一个非空白字符(推荐Spring
StringUtils.isBlank(str)truetruetruefalse检查 null/空/空白(全兼容旧版本)Apache Commons Lang
请帮我优化一下代码,要求不改动代码逻辑,确保优化后的代码是完整可以运行。 @Override public Result<Object> autoQueryForImei(AutoQueryDTO dto, Integer userId, Integer pUserId) { HashMap<String, Object> originDataMap = new HashMap<>(); HashMap<String, Object> formatMap = new HashMap<>(); HashMap<String, Object> resMap = new HashMap<>(); String sn = dto.getImeiOrSn().getSn(); String imei = dto.getImeiOrSn().getImei(); originDataMap.put("instorage_uuid", dto.getInstorageUuid()); originDataMap.put("imei", imei); originDataMap.put("sn", sn); int cateId = 71510; String cateName = "手机"; Integer brandId = null; if (ObjectUtils.isEmpty(dto.getImeiOrSn()) || (!StringUtils.hasText(imei) && !StringUtils.hasText(sn))) { if (StringUtils.hasText(dto.getInstorageUuid())) { new LambdaUpdateChainWrapper<>(draftsBoxService.getBaseMapper()) .eq(DraftsBox::getInstorageUuid, dto.getInstorageUuid()) .set(DraftsBox::getMpFullModel, "") .update(); } formatMap.putAll(originDataMap); formatMap.put("msg", "imeisn必传其一"); formatMap.put("query_status", 100); return Result.failed().data(formatMap); } if (!StringUtils.hasText(imei) && StringUtils.hasText(sn)) { // 条件 1: 16位字母数字(不区分大小写) if (Pattern.matches("^(?i)[0-9a-z]{16}$", sn)) { brandId = 71540; } // 条件 2: 13位字母数字 else if (Pattern.matches("^(?i)[0-9a-z]{13}$", sn)) { brandId = 72669; } // 条件 3: 17位字母数字 else if (Pattern.matches("^(?i)[0-9a-z]{17}$", sn)) { brandId = 72127; } // 条件 4: 14-16位含斜杠,且斜杠在索引5位置 else if (Pattern.matches("^(?i)[/0-9a-z]{14,16}$", sn) && sn.indexOf('/') == 5) { brandId = 71827; }
04-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值