2010-02-15 11 views
5

Scala ha un'API per eseguire un "chomp" su una stringa? Preferibilmente, vorrei convertire una stringa "abcd \ n" Perché non utilizzare a "ABCD"Scala: Chomp di stringa

Grazie Ajay

+1

si dovrebbe probabilmente definire cosa fa il chomp. non tutte le lingue lo hanno come un'operazione di stringa standard. –

risposta

1

Apache Commons Lang e la funzione StringUtils.chomp()? Uno degli aspetti positivi di Scala è che puoi sfruttare le librerie Java esistenti.

+1

Che schifo. Mi aspetterei che fornissero il supporto per il chomp fuori dalla scatola. – user855

+0

@ajay: definisci "loro". – rsenna

+0

Sono abbastanza sicuro che "loro" si riferisce a Odersky/Typesafe. –

11

C'è java.lang.String.trim(), ma questo rimuove anche gli spazi iniziali. C'è anche RichString.stripLineEnd, ma questo rimuove solo \n e \r.

4

Se non si desidera utilizzare Apache Commons Lang, è possibile eseguire il rollover, seguendo queste linee.

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

Mi restituisce ArrayBuffer. Non stringa – user855

+0

Stavo usando Scala 2.8 – retronym

4

V'è infatti un fuori del supporto scatola per 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] 

per qualche definizione di chomp; Davvero la stessa risposta di sepp2k ma che mostra come usarlo su String

Problemi correlati