HiveBrain v1.2.0
Get Started
← Back to all entries
snippetjavaCritical

How to capitalize the first character of each word in a string

Submitted by: @import:stackoverflow-api··
0
Viewed 0 times
howcapitalizethewordcharactereachstringfirst

Problem

Is there a function built into Java that capitalizes the first character of each word in a String, and does not affect the others?

Examples:

  • jon skeet -> Jon Skeet



  • miles o'Brien -> Miles O'Brien (B remains capital, this rules out Title Case)



  • old mcdonald -> Old Mcdonald*



*(Old McDonald would be find too, but I don't expect it to be THAT smart.)

A quick look at the Java String Documentation reveals only toUpperCase() and toLowerCase(), which of course do not provide the desired behavior. Naturally, Google results are dominated by those two functions. It seems like a wheel that must have been invented already, so it couldn't hurt to ask so I can use it in the future.

Solution

WordUtils.capitalize(str) (from apache commons-text)

(Note: if you need "fOO BAr" to become "Foo Bar", then use capitalizeFully(..) instead)

Context

Stack Overflow Q#1892765, score: 803

Revisions (0)

No revisions yet.