Remplacer les caractères dans une chaîne de caractères en Scala
j'essaie de créer une méthode pour convertir les caractères dans une chaîne, en convertissant spécifiquement tous les '0' en'. C'est le code que j'utilise:
def removeZeros(s: String) = {
val charArray = s.toCharArray
charArray.map( c => if(c == '0') ' ')
new String(charArray)
}
Est-il un moyen plus simple de le faire? Cette syntaxe n'est pas valide:
def removeZeros(s: String) =
new String(s.toCharArray.map( c => if(c == '0') ' '))
21
demandé sur
Machavity
2014-01-21 19:03:55
2 réponses
vous pouvez mapper les chaînes directement:
def removeZero(s: String) = s.map(c => if(c == '0') ' ' else c)
vous pouvez également utiliser replace
:
s.replace('0', ' ')
34
répondu
Lee
2014-01-21 15:10:42
Très simple:
scala> "FooN00b".filterNot(_ == '0')
res0: String = FooNb
remplacer certains caractères par d'autres:
scala> "FooN00b" map { case '0' => 'o' case 'N' => 'D' case c => c }
res1: String = FooDoob
pour remplacer un caractère par un nombre arbitraire de caractères:
scala> "FooN00b" flatMap { case '0' => "oOo" case 'N' => "" case c => s"$c" }
res2: String = FoooOooOob
22
répondu
Randall Schulz
2014-01-21 15:29:16