2016-04-13 36 views
1

文字列から部分文字列をフィルタリングしようとしています。問題は単に "fd"というサブ文字列を "fdskufh"から削除するのではなく、それは文字列から "fd"を削除しますが、2番目のfも削除するので、新しい文字列は "skuh"になります。どんな提案も高く評価されますか?私は、以下の機能を使用している:s内のすべての文字を反復処理するために起こって、chにある任意の文字を除外するために起こっている:コードのあなたのラインが何を意味するのかで文字列のスカラフィルタ部分文字列

 def stripChars(s:String, ch:String)= s filterNot (ch contains _) 
+2

's.replace(ch、" ")'? –

答えて

-1

ルック。あなたが観察するのは、実際には何が期待されるのかです。これについて

val regex = "fd".r 
val input = "fdskufh" 

val result = regex.replaceAllIn(input, "") 
+0

完璧に動作します!できるだけ早くこれを正解とします。ありがとう!!! –

+0

Downvoter:なぜこれを落としたのか説明してください。 – Jesper

+0

私はdownvoterではありませんが、明白な問題は、削除される文字列に正規表現の特殊文字が含まれていると動作しないことです。 –

1

方法:

scala> def stripChars(s: String, ch: String) = s.split(ch).mkString 
stripChars: (s: String, ch: String)String 

scala> stripChars("fdskufh", "fd") 
res194: String = skufh 

これは、文字列が存在しない場合は、元の文字列を返すという利点があり

あなたは正規表現を使用することができます。

scala> stripChars("fdskufh", "ff") 
res195: String = fdskufh 

をそして、それは同様に、以下のために働くでしょう:だから、これを持つことができます

scala> stripChars("fdskufhfdsh", "fd") 
res196: String = skufhsh 

EDIT:

それとも、すべてのことを無視して、セルゲイが提案のようにちょうどs.replace(ch, "")で行くことができます

関連する問題