2014-09-11 16 views
25

में हर शब्द के पहले अक्षर कैपिटल बनाएँ मैं इस तरह सेस्काला

val str=org.apache.commons.lang.WordUtils.capitalizeFully("is There any other WAY")) 

जानना चाहते हैं पता है कि एक ही करने के लिए कोई दूसरा रास्ता नहीं है।

स्काला शैली में कुछ

उत्तर

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

यह विभाजक के बावजूद हर शब्द को पूंजीकृत करेगा और किसी भी अतिरिक्त पुस्तकालय की आवश्यकता नहीं है। यह 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'.