8

如何在 Java 中从字符串的开头删除空格而不从末尾删除?

如果值为:

String temp = "    hi    "

那么我怎样才能只删除前导空白,所以它看起来像这样:

String temp = "hi    "

我目前的实现是循环遍历,检查第一个字符并创建一个子字符串,直到达到第一个非空白值。

谢谢!

4

5 回答 5

11

你可以使用:

temp = temp.replaceFirst("^\\s*", "")
于 2012-10-05T21:59:20.857 回答
8

您可以使用 Commons-lang StringUtils stripStart方法。

如果您传递 null ,它将自动修剪空格。

StringUtils.stripStart(temp, null);
于 2012-10-05T21:59:50.373 回答
3

JDK11可以使用stripLeading

String result = temp.stripLeading();
于 2018-11-30T23:55:39.343 回答
1

可能接近建议的 Commons-lang StringUtils.stripStart() 方法的实现:

public static String trimFront(String input) {
    if (input == null) return input;
    for (int i = 0; i < input.length(); i++) {
        if (!Character.isWhitespace(input.charAt(i)))
            return input.substring(i);
    }
    return "";
}
于 2012-10-05T22:06:06.283 回答
0

公然从java2s复制:

text = text.replaceAll("^\\s+", "");

...并使用@Reimus's answer修改:

text = text.replaceFirst("^\\s+", "");

我不确定最有效的方法;fwiw,我选择了@Reimus原版。

于 2017-08-30T18:08:31.570 回答