我需要检索前三个字母
val s ="abc"
val t = s.substring(0,2).equals("ab")
case class Test(id :String)
if(t){
Test("found")
}else{
None
}
是否有一种有效的方法来编码上述逻辑
答案 0 :(得分:5)
"abc".take(2) match {
case "ab" => Test("found")
case _ => None
}
对于String
,您可以使用take
来获取Seq
之类的字符,并且比substring
更安全,以避免StringIndexOutOfBoundsException
例外。
并且由于您在不匹配时返回None
,Test("found")
不应该是Some(Test("found"))
?
答案 1 :(得分:0)
一衬垫:
case class Test(id: String)
val s = "abc"
if (s.take(2) == "ab") Test("found") else None
确保您的字符串长度至少为2个字符,否则take
将引发异常。