разбить строку по словам в scala
Подскажите пожалуйста есть входная строка типа
val string_1 = "head.headmaster.master"
или типа
val string_1 = "head.headmaster"
Мне необходимо всегда вытаскивать первое слово в отдельную переменную
val record = topic.string_1("\\.")(0)
В другую переменную мне необходимо записывать остаток от строки, причем это могут быть либо два элемента тогда с разделителем "_", либо один элемент. Причем так, чтобы это все не сломалось в том случае, т.е. не зависимо от количества слов в переменной string_1
Ответы (1 шт):
Для разбивания строки на части можно использовать метод 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 и больше слов
}