检查空格和空白

时间:2015-12-27 23:48:26

标签: java if-statement whitespace is-empty

我正在寻找一个if语句来检查输入String是否为空或仅由空格组成,如果没有继续下一个输入。下面是我的代码到目前为止,当我输入空格时会出错。

    name = name.trim().substring(0,1).toUpperCase() + name.substring(1).toLowerCase();
    if(name != null && !name.isEmpty() && name.contains(" ")) {
        System.out.println("One");
    } else {
        System.out.println("Two");
    }

3 个答案:

答案 0 :(得分:5)

它给你一个错误的原因是trim()删除所有前导和尾随空格[编辑],所以你的字符串是空的。此时,您调用substring(0,1),因此它将超出范围。

答案 1 :(得分:1)

我会将其写为以下内容。

name = name == null ? "" : name.trim();
if(name.isEmpty()) {
    System.out.println("Null, empty, or white space only name received");
} else {
    System.out.println("Name with at least length one received");
    name = name.substring(0,1).toUpperCase() + name.substring(1).toLowerCase();
}

答案 2 :(得分:0)

我认为,如果你只想使用String方法,那么你需要matches(regex),可能不止一个。

我还没有对此进行测试,但它可能会有效......

String emptyOrAllWhiteSpace = "^[ \t]*$";
if (name == null || name.matches(emptyOrAllWhiteSpace)) {
    // first thing.
} else {
    // second thing.
}

Apache Commons Lang库中有其他选择 - StringUtils.isEmpty(CharSequence)StringUtils.isWhitespace(CharSequence)

Guava还有另一个助手Strings.isNullOrEmpty(),你可以使用它。