这是我/他的房子-输入这是我/他的房子-输出在Swift中,有一个大写的方法给出了上面的输出,有没有什么方法可以在Kotlin中实现同样的功能
pxiryf3j1#
在Kotlin
val s = "this is my/his house" println(s.toCapitalizeEachWord())
扩展功能:
fun String.toCapitalizeEachWord() : String{ return this.split(" ").map { if(it.contains("/")){ it.split("/").map { word -> word.replaceFirstChar { firstChar -> firstChar.uppercase() } }.joinToString("/") }else{ it.replaceFirstChar { firstChar -> firstChar.uppercase() } } }.joinToString(" ") }
**输入:**这是我/他的房子**输出:**这是我/他的房子
cyvaqqii2#
你得把每个字都大写。但是String.capitalize()现在已被弃用。更简单的解决方案是:
String.capitalize()
fun String.capitalizeSentence(): String = this.trim().split("\\s+".toRegex()) .joinToString(" ") { it.replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.ROOT) else it.toString() } }
ippsafx73#
很多人已经发布了正确的核心逻辑或主要逻辑,所以你只需要添加一点自己的逻辑就可以了。无论如何,下面的方法是测试与您的要求,它是工作正常
fun String.capitalizeEachWord() : String{ return this.split(" ").map { if(it.contains("/")){ it.split("/").map { word -> word.replaceFirstChar { firstChar -> firstChar.uppercase() } }.joinToString("/") }else{ it.replaceFirstChar { firstChar -> firstChar.uppercase() } } }.joinToString(" ") }
3条答案
按热度按时间pxiryf3j1#
在Kotlin
扩展功能:
**输入:**这是我/他的房子
**输出:**这是我/他的房子
cyvaqqii2#
你得把每个字都大写。
但是
String.capitalize()
现在已被弃用。更简单的解决方案是:
ippsafx73#
很多人已经发布了正确的核心逻辑或主要逻辑,所以你只需要添加一点自己的逻辑就可以了。无论如何,下面的方法是测试与您的要求,它是工作正常