Разделить строку на пару - PullRequest
0 голосов
/ 30 августа 2018

Я пытаюсь разделить String на два: text.split("\\s+".toRegex(), 2). Но у меня нет никаких гарантий, что их будет ровно два. Пример: "abc".split("\\s+".toRegex(), 2).size == 1.

Можно ли разделить String на две части? Или получите Pair<String, String>?

Обновление. Ожидаемый результат:

  • "123 456 789 0" -> ("123", "456 789 0") или listOf("123", "456 789 0")

  • "123" -> ("123", "") или listOf("123", "")

1 Ответ

0 голосов
/ 30 августа 2018

Почему бы и нет:

Pair(text.substringBefore(' ').trim(), text.substringAfter(' ').trim())

Конечно, это зависит от того, хотите ли вы разбить на все пробелы и игнорировать более 2 строк:

text.split(Regex("\\s+")).let {
    Pair(it[0], it.getOrNull(1) ?: "")
}

или если вы хотите разделить на последний пробел (используйте substringBeforeLast и т. Д.).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...