0

在我的测试中,以下内容似乎涵盖了我能想到的确保填充字段的所有内容。谁能想到我可能错过的案例?

public static boolean isEmpty(final String string) {
    return string != null && !string.isEmpty() && !string.trim().isEmpty();
}
4

4 回答 4

0

你为什么不直接使用图书馆?

一个例子是 Apache 的 Common Utils:

StringUtils.isBlank()

StringUtils.isNotBlank()

于 2012-09-13T14:49:36.873 回答
0

这个名称有点误导,因为该方法被标记为“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
于 2012-09-13T15:04:00.123 回答
0

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;
}
于 2012-09-13T14:51:18.043 回答
-1

你可以这样做:

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;
}
于 2012-09-13T15:04:19.453 回答