我想删除字符串中的前导空格,但不删除尾随空格 - 所以 trim() 不起作用。在 python 中,我使用 lstrip(),但我不确定 Java 中是否有等价物。
举个例子
" foobar "
应该成为
"foobar "
如果可能的话,我也想避免使用正则表达式。
Java中是否有内置函数,还是我必须创建自己的方法才能做到这一点?(我能实现的最短方法是什么)
你可以使用Apache Commons LangStringUtils
类,它有一个方法(还有更多)。stripStart()
您可以在正则表达式中执行此操作:
" foobar ".replaceAll("^\\s+", "");
番石榴有CharMatcher.WHITESPACE.trimLeadingFrom(string)
。这本身与其他实用程序库的同一事物的版本没有太大区别,但是一旦您熟悉CharMatcher
了范围广泛的文本处理操作,您就会知道如何以一致、可读、高性能的方式执行。
从 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."