在我的测试中,以下内容似乎涵盖了我能想到的确保填充字段的所有内容。谁能想到我可能错过的案例?
public static boolean isEmpty(final String string) {
return string != null && !string.isEmpty() && !string.trim().isEmpty();
}
这个名称有点误导,因为该方法被标记为“isEmpty”,但当它不为空时会返回 true ......但这取决于你。
我会将您的 AND 语句更改为 OR 并删除中间项,因为它是多余的,例如
public static boolean isEmpty(final String string) {
return string == null || string.trim().isEmpty();
}
例子:
if(isEmpty(null)){
System.out.println("Empty");
}else{
System.out.println("Not Empty");
}
if(isEmpty("")){
System.out.println("Empty");
}else{
System.out.println("Not Empty");
}
if(isEmpty(" ")){
System.out.println("Empty");
}else{
System.out.println("Not Empty");
}
if(isEmpty("Test")){
System.out.println("Empty");
}else{
System.out.println("Not Empty");
}
输出:
Empty
Empty
Empty
Not Empty
Apache Commons StringUtils使用以下技术:
空:
public static boolean isEmpty(String str) {
return str == null || str.length() == 0;
}
空白:
public static boolean isBlank(String str) {
int strLen;
if (str == null || (strLen = str.length()) == 0) {
return true;
}
for (int i = 0; i < strLen; i++) {
if ((Character.isWhitespace(str.charAt(i)) == false)) {
return false;
}
}
return true;
}
你可以这样做:
public static boolean isEmpty(String string) { //don't make it final going in or you cant trim it.
string = string.trim();
return string != null || string.length() == 0;
}