¿Cómo detectar palabras duplicadas de una cadena en Java?

¿Cuáles son las formas en que se puede detectar la palabra duplicada en una cadena?

p.ej. "este es un mensaje de prueba para prueba duplicada" contiene una prueba de palabra duplicada.

Aquí, el objetivo es detectar todas las palabras duplicadas que aparecen en una cadena.

El uso de la expresión regular es preferible para lograr el objetivo.