2010-02-15 192 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