2014-01-21 69 views
18

我想創建一個方法來轉換字符串內的字符,特別是將所有'0'轉換爲''。這是我正在使用的代碼:替換斯卡拉字符串中的字符

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

有沒有更簡單的方法來做到這一點?此語法是無效的:

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

回答

30

Yo ü可以直接映射字符串:

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

或者你可以使用replace

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

很簡單:

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

要與他人代替某些字符:

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

要使用的字符的一些任意數量的替換一個字符:

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

我理解這個問題從字面上去掉零。如果你想用另一個單獨的字符替換它們,'map'就可以工作。 –