varias strings lineas interpolated interpolaciĆ³n interpolacion ecmascript concatenar string scala dictionary functional-programming

strings - Reemplazo de caracteres en una cadena en Scala



string en varias lineas javascript (2)

Estoy intentando crear un método para convertir caracteres dentro de una cadena, específicamente convirtiendo todo ''0'' a '''' Este es el código que estoy usando:

def removeZeros(s: String) = { val charArray = s.toCharArray charArray.map( c => if(c == ''0'') '' '') new String(charArray) }

¿Hay una forma más sencilla de hacerlo? Esta sintaxis no es válida:

def removeZeros(s: String) = new String(s.toCharArray.map( c => if(c == ''0'') '' ''))


Muy simple:

scala> "FooN00b".filterNot(_ == ''0'') res0: String = FooNb

Para reemplazar algunos personajes con otros:

scala> "FooN00b" map { case ''0'' => ''o'' case ''N'' => ''D'' case c => c } res1: String = FooDoob

Para reemplazar un carácter con un número arbitrario de caracteres:

scala> "FooN00b" flatMap { case ''0'' => "oOo" case ''N'' => "" case c => s"$c" } res2: String = FoooOooOob


Puedes mapear cadenas directamente:

def removeZero(s: String) = s.map(c => if(c == ''0'') '' '' else c)

alternativamente podrías usar replace :

s.replace(''0'', '' '')