Вы можете использовать сопоставление с образцом
case class Account(login :String, platform: String, aType: String)
object Application extends App {
//parse single string
def parse(input: String): Option[Account] = {
if (!input.startsWith("(") || !input.endsWith(")"))
return None
//split input to list using separator
input.substring(1, input.length).split(",").toList match {
//if format is correct return instance of your data class
case List(login, platform, aType) => Some(Account(login, platform, aType))
case _ => None
}
}
//parse list of strings
def parse(input: List[String]): List[Account] =
input.map(parse).flatMap(_.toList)
println(parse("(1854288750,binance,live)"))
println(parse("(1854288751,bitrix,live)"))
val input: List[String] = List("(1854288750,binance,live)", "(1854288751,bitrix,live)", "abc",
"(1854288750,binance,live", "1854288750,binance,live)")
//two-elements list
println(parse(input))
}
Вы имеете в виду, что хотите создать экземпляр этого класса?