2011-07-17 13 views
7

、私はcommons-langでそれを行うことができます。文字列の最後の空白を整える方法は? Javaでは

StringUtils.stripEnd(" abc \t", null) // => " abc" 

を私はScalaでこれを行うには、任意の組み込みの方法があるかどうかを知りたい、または任意のサードパーティの依存関係なしでScalaでそれを行う方法?

+1

Javaはスカラ座と完全に相互運用可能で、Scalaの文字列は、実際にJavaの文字列ですので、あなたが提供されているコードの同じ行を使用することができます。あるいは、Scalaでそれを行う慣用方法について質問していますか? – agilesteel

+0

@agilestell、そうです。 – Freewind

+0

可能な重複の質問を更新してみましょう:http://stackoverflow.com/questions/2269509/scala-string-chomp * retronym * answerをチェックしてください。 – paradigmatic

答えて

8

あなたが正規表現でそれを行うことができます:外部依存関係がないと

" string ".replaceAll("\\s+$", ""); 
res0: java.lang.String = " string" 
+0

'replaceAll'ではなく' replaceFirst'で十分でしょうか? –

2

だけトリミング終了:

scala> val s = " test \t" 
s: java.lang.String = " test  " 

scala> val Regex = """^(.*?)\s*$""".r 
Regex: scala.util.matching.Regex = ^(.*?)\s*$ 

scala> val Regex(trimmed) = s 
trimmed: String = " test" 
+0

ありがとうございます!これはかわいい! – Freewind

+0

1行で書くことはできますか? – Freewind

+0

いいえ、最初に値として抽出器を宣言する必要があります –

5

もう一つの可能​​な方法は、名前の豊かStringクラスからメソッドdropWhileを使用することですStringOps

scala> val y = " abcd ".reverse.dropWhile(_ == ' ').reverse 
y: String = " abcd" 

トリミングが必要な場合文字列の先頭からスペースがちょうどreverseメソッドを削除:

scala> val y = " abcd ".dropWhile(_ == ' ') 
y: String = "abcd " 
+0

+1うわー、これは素晴らしかったです! – Jonas

関連する問題