stringutils.isblank和stringutils.isEmpty的区别
时间: 2024-05-26 19:10:44 浏览: 209
StringUtils.isBlank() 和 StringUtils.isEmpty() 是 Apache Commons Lang 库中的两个字符串工具方法。它们的主要作用是检查一个字符串是否为空或 null。
StringUtils.isEmpty() 方法只是检查字符串是否为 null 或长度为零。如果字符串为 null 或长度为零,它将返回 true,否则返回 false。
StringUtils.isBlank() 方法检查字符串是否为 null 或者是一个或多个空格或 tab 字符或全角空格。如果是这样,它将返回 true,否则返回 false。
因此,区别在于 StringUtils.isBlank() 还会检查空格字符和 tab 字符。如果你只关心 null 或者空字符串,使用 StringUtils.isEmpty() 即可,但如果你还需要处理空格字符和 tab 字符,那么就要使用 StringUtils.isBlank()。
相关问题
if (bindingResult.hasErrors()) { for (ObjectError error : bindingResult.getAllErrors()) { return new PayResult<ZhenghangParamDTO>(PayResultConstant.PARAM_VALID_FAILED.getCode(), error.getDefaultMessage(), null); } } if (StringUtils.isBlank(orgCode)){ return new PayResult<ZhenghangParamDTO>(PayResultConstant.PARAM_VALID_FAILED.getCode(), "公司编码不能为空", null); } if (epayBankParamDTO.getCo_list() == null || epayBankParamDTO.getCo_list().isEmpty()){ return new PayResult<ZhenghangParamDTO>(PayResultConstant.PARAM_VALID_FAILED.getCode(), "关联订单信息不能为空", null); } if (!isIntAndGreaterThanZero(epayBankParamDTO.getBill_acct())){ return new PayResult(PayResultConstant.PARAM_VALID_FAILED.getCode(),"交易金额必须大于0,必须为整数", null); } if (StringUtils.isBlank(epayBankParamDTO.getCanInputName())){ epayBankParamDTO.setCanInputName("1"); } if (StringUtils.isBlank(epayBankParamDTO.getOrder_type())){ epayBankParamDTO.setOrder_type("901"); } if (StringUtils.isBlank(epayBankParamDTO.getCurr_type())){ epayBankParamDTO.setCurr_type("156"); }
这段代码可以进行如下优化:
```java
if (bindingResult.hasErrors()) {
ObjectError error = bindingResult.getAllErrors().get(0);
return new PayResult<>(PayResultConstant.PARAM_VALID_FAILED.getCode(), error.getDefaultMessage(), null);
}
if (StringUtils.isBlank(orgCode)) {
return new PayResult<>(PayResultConstant.PARAM_VALID_FAILED.getCode(), "公司编码不能为空", null);
}
if (epayBankParamDTO.getCo_list() == null || epayBankParamDTO.getCo_list().isEmpty()) {
return new PayResult<>(PayResultConstant.PARAM_VALID_FAILED.getCode(), "关联订单信息不能为空", null);
}
if (!isIntAndGreaterThanZero(epayBankParamDTO.getBill_acct())) {
return new PayResult<>(PayResultConstant.PARAM_VALID_FAILED.getCode(), "交易金额必须大于0,必须为整数", null);
}
epayBankParamDTO.setCanInputName(StringUtils.defaultIfBlank(epayBankParamDTO.getCanInputName(), "1"));
epayBankParamDTO.setOrder_type(StringUtils.defaultIfBlank(epayBankParamDTO.getOrder_type(), "901"));
epayBankParamDTO.setCurr_type(StringUtils.defaultIfBlank(epayBankParamDTO.getCurr_type(), "156"));
```
这个优化做了以下几个改进:
1. 在第一个 `if` 语句块里,我们只需要获取第一个错误信息,而不需要遍历所有的错误信息,这样可以减少不必要的操作。
2. 对于后面三个 `if` 语句块,我们可以使用 `StringUtils.defaultIfBlank()` 方法来简化代码,这个方法会在字符串为空时返回一个默认值,这样可以避免使用 `if` 语句来判断是否为空。
stringutils.isempty和isblank
stringutils.isempty和isblank都是Java语言中的字符串处理工具类方法。
其中,stringutils.isempty用于判断字符串是否为空,即字符串长度为或者字符串为null时返回true,否则返回false。
而isblank则是判断字符串是否为空或者只包含空格,即字符串长度为或者字符串中只包含空格时返回true,否则返回false。
两者的区别在于isblank会将空格也视为字符串的内容,而isempty只判断字符串的长度和是否为null。
阅读全文