6

我想删除字符串中的前导空格,但不删除尾随空格 - 所以 trim() 不起作用。在 python 中,我使用 lstrip(),但我不确定 Java 中是否有等价物。

举个例子

"    foobar    "

应该成为

"foobar    "

如果可能的话,我也想避免使用正则表达式。

Java中是否有内置函数,还是我必须创建自己的方法才能做到这一点?(我能实现的最短方法是什么)

4

5 回答 5

10

你可以使用Apache Commons LangStringUtils类,它有一个方法(还有更多)。stripStart()

于 2010-06-23T09:13:24.340 回答
5

您可以在正则表达式中执行此操作:

"    foobar    ".replaceAll("^\\s+", "");
于 2010-06-23T09:16:26.907 回答
2

番石榴CharMatcher.WHITESPACE.trimLeadingFrom(string)。这本身与其他实用程序库的同一事物的版本没有太大区别,但是一旦您熟悉CharMatcher了范围广泛的文本处理操作,您就会知道如何以一致、可读、高性能的方式执行。

于 2010-06-23T15:40:47.373 回答
1

从 Java11 开始,您可以.stripLeading()在 String 上使用来删除前导空格并.stripTrailing()删除尾随空格。

可以在此处找到相关文档:https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html#stripLeading()

例子:

String s = "    Hello there.    ";
s.stripLeading();    // "Hello there.    "
s.stripTrainling();  // "    Hello there."
s.strip();           // "Hello there."
于 2020-06-10T06:31:25.893 回答
0

org.springframework.util.StringUtils.trimLeadingWhitespace(字符串)

于 2010-06-23T09:13:53.023 回答