StringUtils.isNotEmpty与isNotBlank 区别
时间: 2023-08-27 11:19:05 浏览: 121
StringUtils.isNotEmpty和StringUtils.isNotBlank都是Apache Commons Lang库中的字符串工具类方法,用于判断一个字符串是否为非空或非空白字符串。它们的区别在于:
1. StringUtils.isNotEmpty()方法只判断字符串是否为空,即长度是否为0,不考虑字符串中是否包含空格等空白字符。
2. StringUtils.isNotBlank()方法判断字符串是否为空或者空白字符(空格、制表符、换行符等),只有字符串中包含至少一个非空白字符才返回true。
因此,如果你只需要判断字符串是否为空,则可以使用StringUtils.isNotEmpty()方法,如果你需要判断字符串是否为空或空白字符,则可以使用StringUtils.isNotBlank()方法。
相关问题
StringUtils.isnotblank和StringUtils.isnotenpty区别
StringUtils.isNotBlank和StringUtils.isNotEmpty是Apache Commons Lang库中的字符串工具类方法。
1. StringUtils.isNotBlank:
- 用于检查字符串是否不为空不只包含空白字符。
- 返回true的条件:字符串不为null,且长度大于0,且除去首尾的空白字符后,长度大于0。
- 例如,对于字符串" ",返回false;对于字符串"abc",返回true。
2. StringUtils.isNotEmpty:
- 用于检查字符串是否不为空。
- 返回true的条件:字符串不为null,且长度大于0。
- 例如,对于字符串"",返回false;对于字符串"abc",返回true。
简而言之,StringUtils.isNotBlank检查的是字符串是否不为空且包含非空白字符,而StringUtils.isNotEmpty只检查字符串是否不为空。
for (SysRole role : user.getRoles()) { String dataScope = role.getDataScope(); if (!DATA_SCOPE_CUSTOM.equals(dataScope) && conditions.contains(dataScope)) { continue; } if (StringUtils.isNotEmpty(permission) && StringUtils.isNotEmpty(role.getPermissions()) && !StringUtils.containsAny(role.getPermissions(), Convert.toStrArray(permission))) { continue; } if (DATA_SCOPE_ALL.equals(dataScope)) { sqlString = new StringBuilder(); conditions.add(dataScope); break; } else if (DATA_SCOPE_CUSTOM.equals(dataScope)) { sqlString.append(StringUtils.format( " OR {}.dept_id IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) ", deptAlias, role.getRoleId())); } else if (DATA_SCOPE_DEPT.equals(dataScope)) { sqlString.append(StringUtils.format(" OR {}.dept_id = {} ", deptAlias, user.getDeptId())); } else if (DATA_SCOPE_DEPT_AND_CHILD.equals(dataScope)) { sqlString.append(StringUtils.format( " OR {}.dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = {} or find_in_set( {} , ancestors ) )", deptAlias, user.getDeptId(), user.getDeptId())); } else if (DATA_SCOPE_SELF.equals(dataScope)) { if (isNotBlank(userAlias)) { sqlString.append(StringUtils.format(" OR {}.user_id = {} ", userAlias, user.getUserId())); } else { // 数据权限为仅本人且没有userAlias别名不查询任何数据 sqlString.append(StringUtils.format(" OR {}.dept_id = 0 ", deptAlias)); } } conditions.add(dataScope); } 减少循环中break和continue语句的总数,最多使用一条。
可以使用一个条件语句来代替break和continue语句。在需要退出循环的地方设置一个boolean类型的变量,然后在循环结束后根据该变量的值判断是否需要继续执行。例如:
```
boolean shouldContinue = false;
for (SysRole role : user.getRoles()) {
String dataScope = role.getDataScope();
if (!DATA_SCOPE_CUSTOM.equals(dataScope) && conditions.contains(dataScope)) {
continue;
}
if (StringUtils.isNotEmpty(permission) && StringUtils.isNotEmpty(role.getPermissions())
&& !StringUtils.containsAny(role.getPermissions(), Convert.toStrArray(permission))) {
continue;
}
if (DATA_SCOPE_ALL.equals(dataScope)) {
sqlString = new StringBuilder();
conditions.add(dataScope);
shouldContinue = true;
} else {
conditions.add(dataScope);
if (DATA_SCOPE_CUSTOM.equals(dataScope)) {
sqlString.append(StringUtils.format(
" OR {}.dept_id IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) ", deptAlias,
role.getRoleId()));
} else if (DATA_SCOPE_DEPT.equals(dataScope)) {
sqlString.append(StringUtils.format(" OR {}.dept_id = {} ", deptAlias, user.getDeptId()));
} else if (DATA_SCOPE_DEPT_AND_CHILD.equals(dataScope)) {
sqlString.append(StringUtils.format(
" OR {}.dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = {} or find_in_set( {} , ancestors ) )",
deptAlias, user.getDeptId(), user.getDeptId()));
} else if (DATA_SCOPE_SELF.equals(dataScope)) {
if (isNotBlank(userAlias)) {
sqlString.append(StringUtils.format(" OR {}.user_id = {} ", userAlias, user.getUserId()));
} else {
// 数据权限为仅本人且没有userAlias别名不查询任何数据
sqlString.append(StringUtils.format(" OR {}.dept_id = 0 ", deptAlias));
}
}
}
if (shouldContinue) {
break;
}
}
```
阅读全文