5

ScalaSeqLikeはメソッドを実装しcontainsます。機能をきれいに実装するにはどうすればよいcontainsAnyですか?

string文字列にブラックリストに登録されている文字が含まれているかどうかを調べたいとしましょうblacklist:

val blacklist = List("(", ")", "[", "]", "{", "}", "<", ">")
string containsAny blacklist

2行目をきれいに実装するにはどうすればよいですか?

これまでの私のバージョンは次のようになります。

(blacklist.view map string.contains) contains true
4

1 に答える 1

10

あなたの最善の策は、ブラックリストをセットにすることです.

val blacklist = "()[]{}<>".toSet

existsこれらの文字のいずれかが文字列に存在するかどうかを調べるために使用できます。Set[T]extendsであるためT => Boolean、明示的な条件を記述する代わりに、セットを直接使用することができます。

scala> "I like fish (but not herring)" exists blacklist
res1: Boolean = true

scala> "I like fish, especially salmon!" exists blacklist
res2: Boolean = false

"I am a string"(注: 文字列と文字の違いに注意してください: 'c'. 1 文字の文字列は、文字ではなく文字列です。)

于 2013-03-23T15:24:24.610 に答える