2010-02-15 7 views
5

¿Tiene Scala una API para hacer un "chomp" en una cadena? Preferiblemente, me gustaría convertir una cadena "ABCD \ n" a "ABCD"Scala: String Chomp

Gracias Ajay

+1

probablemente debería definir lo que chomp hace. no todos los idiomas lo tienen como una operación de serie estándar. –

Respuesta

1

Por qué no usar Apache Commons Lang y la función StringUtils.chomp()? Una de las mejores cosas de Scala es que puede sacar provecho de las bibliotecas Java existentes.

+1

Eso apesta. Esperaría que brinden soporte chomp de fábrica. – user855

+0

@ajay: defina "ellos". – rsenna

+0

Estoy bastante seguro de que "ellos" se refiere a Odersky/Typesafe. –

11

Hay java.lang.String.trim(), pero eso también elimina los espacios en blanco iniciales. También hay RichString.stripLineEnd, pero eso solo elimina \n y \r.

4

Si no desea utilizar Apache Commons Lang, puede hacer las suyas propias, en esta línea.

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

Me devuelve ArrayBuffer. No cadena – user855

+0

Estaba usando Scala 2.8 – retronym

4

De hecho, hay una salida de la caja de soporte para chomp

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] 

por alguna definición de chomp; realmente la misma respuesta que sepp2k, pero mostrando cómo usarlo en String

Cuestiones relacionadas