在字符串中取前三个字母

时间:2017-10-23 10:07:43

标签: scala list

我需要检索前三个字母

val s ="abc"
val t = s.substring(0,2).equals("ab")
case class Test(id :String)

if(t){
  Test("found")
 }else{
   None
 }

是否有一种有效的方法来编码上述逻辑

2 个答案:

答案 0 :(得分:5)

"abc".take(2) match {
  case "ab" => Test("found")
  case _ => None
}

对于String,您可以使用take来获取Seq之类的字符,并且比substring更安全,以避免StringIndexOutOfBoundsException例外。

并且由于您在不匹配时返回NoneTest("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将引发异常。