在Java中判断一个字符串是否以空格开头

5
我知道trim函数可以去除字符串开头和结尾的空格,但我想检查一个字符串的第一个字符是否为空格。我已经尝试了很多方法,但好像都行不通。
请问有没有人能指点一下我该怎么做?如果可以不使用正则表达式就更好了。
非常感谢!
4个回答

26
if (Character.isWhitespace(str.charAt(0))) {
  // do something
}

2
请确保检查字符串不为空。 - EboMike
3
确实,我只是假设原帖作者能够处理那个问题。 - casablanca
2
还要注意,Character#isWhitespace 与 String#trim 不完全兼容。前者会检测Unicode空格字符,后者处理ASCII控制字符。你可以使用 Commons Lang StringUtils#strip 来获取更合理的修剪版本。 - Thilo

4
if (Character.isWhitespace(str.charAt(0))) //...

0
"string".startsWith(" ")

5
但这样会忽略以其他空白字符开头的字符串,比如 "\t\r\n\v\f"... - maerics

0
public void yourMethod(String string) {
    if (isLengthGreaterThanZero(string) && isFirstCharacterWhiteSpace(string)) {
        ...
    }
}

private boolean isFirstCharacterWhiteSpace(String string) {
    char firstCharacter = string.charAt(0);
    return Character.isWhitespace(firstCharacter);
}

private boolean isLengthGreaterThanZero(String string) {
    return string != null && string.length() > 0;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接