2013-01-24 25 views
11

文字列から複数の文字型を削除するには、これは受け入れやすい方法ですか、それともより効率的な方法がありますか? "ilr".contains(_)ビットは、それが各キャラクターごとに行われることを考えれば、ちょっと騙されるような感じですが、もう一度、おそらくこれは正しい方法です。これを行うより速く効率的な方法がありますか?文字列から複数の文字型を削除する

答えて

25

削除する文字数は3文字で、大きな文字列はフィルタリングされないため、大きな違いはありませんが、この目的でSetを使用することを検討することがあります。例えば。

対照的に
"Twinkle twinkle little star, oh I wander what you are" replaceAll ("[ilr]", "") 
// res0: String = Twnke twnke tte sta, oh I wande what you ae 

正規表現を使用して、char S(Seq[Char]をフィルタリングのように)での作業にする必要があります:私はちょうど(それは正規表現を取る)replaceAll Javaの古き良きを使用したい

val toRemove = "ilr".toSet 
val words = sentence.filterNot(toRemove) 
25

基本的な多言語面以外のコードポイントで作業していても、Unicodeで安全です。 "There Ain't No Such Thing As Plain Text."

+1

+1ありがとう、私はJavaがどれくらい近いのかを忘れています。 – Jack

+0

「BMPの外側」にポイントがあるかもしれません。しかし、あなたが気にしていれば、BMPに安全なJavaソフトウェア(* http://stackoverflow.com/a/2533118/53974)のようなものはほとんどありません。 幸いなことに、適切なAPIを使用している場合、SDKは明らかに例外です。正規表現は恩恵を受けるAPIの1つです。 http://www.oracle.com/us/technologies/java/supplementary-142654.html – Blaisorblade

関連する問題