我知道这种方式
val str=org.apache.commons.lang.WordUtils.capitalizeFully("is There any other WAY"))
想知道还有其他方法可以做同样的事。
Scala风格的东西
答案 0 :(得分:104)
大写字符串的第一个字母:
"is There any other WAY".capitalize
res8: String = Is There any other WAY
将字符串中每个单词的第一个字母大写:
"is There any other WAY".split(' ').map(_.capitalize).mkString(" ")
res9: String = Is There Any Other WAY
大写字符串的第一个字母,同时低估其他所有字母:
"is There any other WAY".toLowerCase.capitalize
res7: String = Is there any other way
将字符串中每个单词的第一个字母大写,而将其他所有单词大写:
"is There any other WAY".toLowerCase.split(' ').map(_.capitalize).mkString(" ")
res6: String = Is There Any Other Way
答案 1 :(得分:9)
有点复杂,您可以使用split来获取字符串列表然后使用大写,然后使用reduce来获取字符串:
scala> "is There any other WAY".split(" ").map(_.capitalize).mkString(" ")
res5: String = Is There Any Other WAY
答案 2 :(得分:1)
无论分隔符如何,这个都将大写每个单词,并且不需要任何其他库。它也会正确处理撇号。
scala> raw"\b((?<!\b')\w+)".r.replaceAllIn("this is a test, y'all! 'test/test'.", _.group(1).capitalize)
res22: String = This Is A Test, Y'all! 'Test/Test'.
答案 3 :(得分:0)
尽管有一个分隔符,但要大写每个单词的第一个字母:
scala> import com.ibm.icu.text.BreakIterator
scala> import com.ibm.icu.lang.UCharacter
scala> UCharacter.toTitleCase("is There any-other WAY", BreakIterator.getWordInstance)
res33: String = Is There Any-Other Way