Прописать каждое слово в строке с помощью функции расширения - PullRequest
0 голосов
/ 27 августа 2018

Я хочу сделать функцию расширения в Kotlin, которая преобразует первую букву каждого слова строки в верхний регистр

the quick brown fox

до

The Quick Brown Fox

Я пытался использовать метод capitalize(). Это только заглавная буква String.

Ответы [ 2 ]

0 голосов
/ 12 июня 2019

Это можно сделать более простым, чем принятый ответ, например:

fun String.capitalizeWords(): String = split(" ").joinToString(" ") { it.capitalize() }
0 голосов
/ 28 августа 2018

Поскольку вы знаете capitalize(), все, что вам нужно, это разделить строку пробелом в качестве разделителя, чтобы извлечь каждое слово и применить capitalize() к каждому слову. Тогда присоединяйтесь ко всем словам.

fun String.capitalizeWords(): String = split(" ").map { it.capitalize() }.joinToString(" ")

используйте это:

val s = "the quick brown fox"
println(s.capitalizeWords())

напечатает:

The Quick Brown Fox

Примечание: это расширение не учитывает другие символы в слове, которые могут быть или не быть написаны заглавными буквами, но это:

fun String.capitalizeWords(): String = split(" ").map { it.toLowerCase().capitalize() }.joinToString(" ")
...