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.
This is just another way of doing it:
From Java 9+
you can use
String::replceAll
like this :Example :
Outputs
Here is a simple function
I made a solution in Java 8 that is IMHO more readable.
The Gist for this solution can be found here: https://gist.github.com/Hylke1982/166a792313c5e2df9d31
For those of you using Velocity in your MVC, you can use the
capitalizeFirstLetter()
method from the StringUtils class.