我想删除字符串中的前导空格,但不删除尾随空格 - 所以trim()将不起作用。在python中我使用lstrip(),但我不确定Java中是否存在等价物。
作为一个例子
" foobar "
应该成为
"foobar "
如果可能的话,我也想避免使用正则表达式。
Java中是否有内置函数,或者我是否必须创建自己的方法来执行此操作? (以及我能达到的最短路径是什么)
答案 0 :(得分:7)
您可以使用StringUtils
类Apache Commons Lang类stripStart()
方法(以及更多方法)。
答案 1 :(得分:4)
您可以使用正则表达式执行此操作:
" foobar ".replaceAll("^\\s+", "");
答案 2 :(得分:2)
Guava有CharMatcher.WHITESPACE.trimLeadingFrom(string)
。这本身与其他实用程序库的同一版本的版本没有什么不同,但是一旦熟悉CharMatcher
,就会有大量的文本处理操作,您将知道如何以一致的方式执行,可读,高效的方式。
答案 3 :(得分:1)
从Java11开始,您可以在字符串上使用.stripLeading()
来删除前导空格,并使用.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."
答案 4 :(得分:0)