我想在Kotlin中创建一个扩展功能,该功能将字符串的每个单词的首字母转换为大写

the quick brown fox


The Quick Brown Fox

我尝试使用capitalize()方法。但这只是将String的首字母大写。

最佳答案

既然您知道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(" ")
或更短:
@SuppressLint("DefaultLocale")
fun String.capitalizeWords(): String =
    split(" ").joinToString(" ") { it.toLowerCase().capitalize() }

07-24 09:16