Как сделать заглавными буквами первый символ каждого слова в строке

Есть ли встроенная в Java функция, которая использует первый символ каждого слова в строке и не влияет на остальные?

Примеры:

jon skeet ->Jon Skeetmiles o'Brien ->Miles O'Brien (B остается заглавной, это исключает заглавие)old mcdonald ->Old Mcdonald*

* (Old McDonald было бы тоже найти, но я не ожидаю, что это будет ЭТО умно.)

Быстрый взгляд наJava Строковая Документация показывает толькоtoUpperCase() а такжеtoLowerCase()что, конечно, не обеспечивает желаемого поведения. Естественно, в результатах Google преобладают эти две функции. Это похоже на колесо, которое, должно быть, уже было изобретено, поэтому спрашивать не повредит, поэтому я смогу использовать его в будущем.