2014-09-11 10 views

ответ

80

заглавной буквы строки:

"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 
7

Немного запутанным, вы можете использовать раскол, чтобы получить список строк, а затем использовать выгоды, а затем уменьшить, чтобы получить обратно строку:

scala> "is There any other WAY".split(" ").map(_.capitalize).mkString(" ") 
res5: String = Is There Any Other WAY 
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 
0

Этот символ будет использовать каждое слово независимо от разделителя и не требует каких-либо дополнительных библиотек. Он также будет правильно обрабатывать апостроф.

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'.