2010-02-15 188 views
5

斯卡拉有一個API來做一個字符串「chomp」嗎? Preferrably,我想轉換爲 「abcd \ n」 來 「ABCD」斯卡拉:字符串Chomp

感謝 阿賈伊

+1

你應該可能定義chomp做什麼。並非每種語言都將其作爲標準字符串操作。 – 2010-02-15 23:01:24

回答

1

爲什麼不使用Apache Commons LangStringUtils.chomp()功能?關於Scala的一個很棒的事情就是你可以利用現有的Java庫。

+1

這很糟糕。我希望他們提供開箱即用的支持。 – user855 2010-02-15 23:14:10

+0

@ajay:定義「他們」。 – rsenna 2013-05-29 21:02:24

+0

我很確定「他們」是指Odersky/Typesafe。 – 2014-09-15 23:31:46

11

還有java.lang.String.trim(),但這也刪除了領先的空白。還有RichString.stripLineEnd,但只刪除\n\r

4

如果你不想使用Apache Commons Lang,那麼可以沿着這些路線推出自己的產品。

scala> def chomp(text: String) = text.reverse.dropWhile(" \n\r".contains(_)).reverse 
chomp: (text: String)String 

scala> "[" + chomp(" a b cd\r \n") + "]" 
res28: java.lang.String = [ a b cd] 
+0

它讓我回到ArrayBuffer。不是字符串 – user855 2010-02-15 23:22:42

+0

我正在使用Scala 2.8 – retronym 2010-02-16 06:23:47

4

有實際上是一個開箱支持的用於格格

scala> val input = "abcd\n" 
input: java.lang.String = 
abcd 


scala> "[%s]".format(input) 
res2: String = 
[abcd 
] 

scala> val chomped = input.stripLineEnd 
chomped: String = abcd 

scala> "[%s]".format(chomped) 
res3: String = [abcd] 

爲格格的一些定義;與sepp2k相同的答案,但顯示如何使用它String