我正在尝试对scala字符串进行一些验证
它仅为res0提供了正确的结果,所有其他的都给出了错误的错误
我期待res1,res2,res3为真,因为字符串中有一个坏字符
scala> val badChars = Set( ',' , '-' , '\\' , '/' , '|' , '\t' )
badChars: scala.collection.immutable.Set[Char] = Set(\, , |, -, ,, /)
scala> var str ="surender"
str: String = surender
scala> str.forall(badChars.contains(_))
res0: Boolean = false
scala> var str ="surender-"
str: String = surender-
scala> str.forall(badChars.contains(_))
res1: Boolean = false
scala> var str ="surender,"
str: String = surender,
scala> str.forall(badChars.contains(_))
res2: Boolean = false
scala> var str ="surender|"
str: String = surender|
scala> str.forall(badChars.contains(_))
res3: Boolean = false
有人可以解释我这里出了什么问题吗?
答案 0 :(得分:1)
答案 1 :(得分:1)
forall
仅返回true
。如果您使用了exists
,如果谓词适用于任何成员,则返回true
,您的代码可能会按预期工作。