Jak wykorzystać wielką literę każdego słowa w ciągu

Czy istnieje funkcja wbudowana w Javę, która wykorzystuje pierwszy znak każdego słowa w łańcuchu i nie wpływa na inne?

Przykłady:

jon skeet ->Jon Skeetmiles o'Brien ->Miles O'Brien (B pozostaje kapitałem, co wyklucza Przypadek Tytułowy)old mcdonald ->Old Mcdonald*

* (Old McDonald też by się znalazło, ale nie spodziewam się, żeby TO było tak inteligentne.)

Szybkie spojrzenie naDokumentacja ciągu Java ujawnia tylkotoUpperCase() itoLowerCase(), które oczywiście nie zapewniają pożądanego zachowania. Oczywiście wyniki Google są zdominowane przez te dwie funkcje. Wygląda na koło, które musiało być już wymyślone, więc nie mogło zaszkodzić zapytać, abym mógł go użyć w przyszłości.

questionAnswers(30)

yourAnswerToTheQuestion