如何从字符串的开头删除空格?

时间:2012-10-05 21:56:25

标签: java whitespace trim

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

如果值为:

String temp = "    hi    "

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

String temp = "hi    "

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

谢谢!

5 个答案:

答案 0 :(得分:9)

您可以使用:

temp = temp.replaceFirst("^\\s*", "")

答案 1 :(得分:6)

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

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

StringUtils.stripStart(temp, null);

答案 2 :(得分: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 "";
}

答案 3 :(得分:1)

JDK11起,您可以使用stripLeading

String result = temp.stripLeading();

答案 4 :(得分:0)

明确地从java2s复制:

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

...并使用@Reimus的答案修改:

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

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