разбить строку по словам в scala

Подскажите пожалуйста есть входная строка типа

val string_1 = "head.headmaster.master" или типа val string_1 = "head.headmaster"

Мне необходимо всегда вытаскивать первое слово в отдельную переменную val record = topic.string_1("\\.")(0) В другую переменную мне необходимо записывать остаток от строки, причем это могут быть либо два элемента тогда с разделителем "_", либо один элемент. Причем так, чтобы это все не сломалось в том случае, т.е. не зависимо от количества слов в переменной string_1


Ответы (1 шт):

Автор решения: EnverOsmanov

Для разбивания строки на части можно использовать метод split, установив максимальный порог - 2 остатка разделения.

val string_1 = "head.headmaster.master"

val arr = string_1.split("\\.", 2)
// Array("head", "headmaster.master")

Вторая часть задачи сформулированна менее чётко. Реализовать запись в переменные можно вот так:

arr match {
  case Array(record) => // когда на входе только одно слово
  case Array(record_1, record_2) => // когда на входе 2 и больше слов
}

→ Ссылка