2010-06-23 48 views
3

我想删除字符串中的前导空格,但不删除尾随空格 - 因此trim()将不起作用。在python中,我使用lstrip(),但我不确定在Java中是否有等价物。相当于python的String lstrip()的Java?

举个例子

" foobar " 

应该成为

"foobar " 

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

在Java中是否有内置的函数,还是我必须去创建我自己的方法来做到这一点? (以及我能达到的最短途径是什么)

+0

请问为什么不是正则表达式?克洛克的答案看起来是最简单的方法。它非常易读,速度快,不需要任何额外的库。 – 2010-06-23 09:43:06

+0

@tulskiy我认为使用StringUtils来完成这个任务更具可读性,能更好地表达动作的意图。 – 2010-06-23 09:47:06

+1

@Christian Semaru:我知道commons lang是一个很棒的图书馆,但是因为一个简单的任务而将整个图书馆加入到一个项目中是一个矫枉过正的行为。 – 2010-06-23 10:09:54

回答

4

你可以在正则表达式做到这一点:

" foobar ".replaceAll("^\\s+", ""); 
+1

有趣的是,包含正则表达式的一个答案在声明正则表达式应该避免。就个人而言,我会使用正则表达式而不是库 - 除了库已经是项目的一部分。 – musiKk 2010-06-24 05:39:03

2

GuavaCharMatcher.WHITESPACE.trimLeadingFrom(string)。这本身与其他实用程序库的同一版本没有什么不同,但是一旦您熟悉CharMatcher,就会有大量的文本处理操作,您将知道如何以一致的,可读的,高性能的方式执行。