Вы можете построить функцию следующим образом
def convertText(fileData: Vector[String]) : EB_Text = {
EB_Text(fileData.map{
singleLine =>
singleLine.replaceAll(" ","").toUpperCase().collect{
case 'E' => E
case 'B' => B
}
}.flatten)
}
Вам не нужно вносить какие-либо изменения в объекты case, которые вы определили ранее. Вы можете оставить их как есть
sealed trait EB
case object E extends EB
case object B extends EB
case class EB_Text(data: Vector[EB])
При вызове функции со следующим вводом вы получите вывод как
val input = Vector("EBBEBBB BBEB"," E","BEB BEB B"," B ")
convertText(input)
вы получите вывод как
res0: EB_Text = EB_Text(Vector(E, B, B, E, B, B, B, B, B, E, B, E, B, E, B, B, E, B, B, B))
Надеюсь, это ответит на ваш вопрос.