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'', '' '')