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.
There are many way to convert the first letter of the first word being capitalized. I have an idea. It's very simple:
WordUtils.capitalize(str)
(from apache commons-text)(Note: if you need
"fOO BAr"
to become"Foo Bar"
, then usecapitalizeFully(..)
instead)Reusable method for intiCap:
I decided to add one more solution for capitalizing words in a string:
Function:
Example call: