fun String.capitalizeWords() = split(' ').joinToString(" ", transform = String::capitalize)
还有一个测试:
class StringExtensionTest {
@Test
fun `test capitalize a sentance`() = run {
Assert.assertEquals("Abba Sill Med Extra", "abba sill med extra".capitalizeWords())
}
}
8条答案
按热度按时间egdjgwm81#
既然你知道
capitalize()
,你所需要做的就是用空格作为分隔符来分割字符串,以提取每个单词,并对每个单词应用capitalize()
,然后重新连接所有的单词。使用它:
将打印:
注意:这个扩展不考虑单词中可能大写或可能不大写的其他字符,但这确实:
或更短:
j5fpnvbx2#
它可以用比已接受的答案更简单的方式完成,请检查:
rbpvctlc3#
capitalise()现在已弃用,Kotlin建议改用replaceFirstChar
t5fffqht4#
为什么不使用扩展属性呢?
它可以被称为:
它将显示:
我个人认为属性应该用于没有参数的返回。
bz4sfanl5#
String#capitalize()
已过时。请使用以下命令:3df52oht6#
另一个没有过时方法的解决方案:
zsbz8rwp7#
另一种可以使用变换实现此操作的方法是:
还有一个测试:
z31licg08#
最新的优雅解决方案,没有任何过时的构造