Вы можете использовать шаблон регулярного выражения для разделения и идентификации двух частей String
и использовать collect()
, чтобы отсеять плохо отформатированный ввод.
class BaseSDCConfig
object BaseSDCConfig{
case class Whitelist(accountId: String, ruleName: String) extends BaseSDCConfig
}
val pattrn = "([^:]*):([^:]*)".r
List("123:abcd", "id7:rule9", "no colon here", "444:xyz", "too:many:colons")
.collect{
case pattrn(accnt, rule) => BaseSDCConfig.Whitelist(accnt, rule)
}
//res0: List[BaseSDCConfig.Whitelist] = List(Whitelist(123,abcd)
// , Whitelist(id7,rule9)
// , Whitelist(444,xyz))