Je sais de cette façon
val str=org.Apache.commons.lang.WordUtils.capitalizeFully("is There any other WAY"))
Vous voulez savoir s'il existe un autre moyen de faire la même chose.
quelque chose dans le style Scala
Capitalisez la première lettre d'une chaîne:
"is There any other WAY".capitalize
res8: String = Is There any other WAY
Mettez en majuscule la première lettre de chaque mot d'une chaîne:
"is There any other WAY".split(' ').map(_.capitalize).mkString(" ")
res9: String = Is There Any Other WAY
Mettez en majuscule la première lettre d'une chaîne, et mettez tout le reste en majuscule:
"is There any other WAY".toLowerCase.capitalize
res7: String = Is there any other way
Capitalisez la première lettre de chaque mot dans une chaîne, tout en minuscule:
"is There any other WAY".toLowerCase.split(' ').map(_.capitalize).mkString(" ")
res6: String = Is There Any Other Way
Un peu compliqué, vous pouvez utiliser split pour obtenir une liste de chaînes, puis utiliser majuscule, puis réduire pour récupérer la chaîne:
scala> "is There any other WAY".split(" ").map(_.capitalize).mkString(" ")
res5: String = Is There Any Other WAY
Celui-ci mettra en majuscule chaque mot indépendamment du séparateur et ne nécessitera aucune bibliothèque supplémentaire. Il gérera également correctement l'apostrophe.
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'.
Pour capitaliser la première lettre de chaque mot malgré un séparateur:
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