Cómo encontrar la subcadena repetida más larga de una cadena dada

Soy java nuevo y me asignaron la tarea de encontrar la subcadena más larga de una cadena. Investigo en línea y parece que una buena manera de abordar este problema será implementar el árbol de sufijos. Por favor, hágame saber cómo puedo hacer esto o si tiene alguna otra solución. tenga en cuenta que esto se debe hacer con un bajo nivel de conocimiento de Java.

Gracias en adavance.

PD la cadena de prueba es tranquilizadora

    /**
This method will find the longest substring of a given string.
String given here is reassuring. 

 */
public String longestRepeatedSubstring()
{
    String longestRepeatedSubstring = "";
    for (int i = 0; i<text.length(); i++ )
    {
        String one = text.substring(0,i); 

        for(int o = 0; o<text.length();o++)
        {
            Sting two = text.substring(0,o);
            if(one.equals(two))
            {
                longestRepeatedSubstring = one;
            }

        }

    }
    return longestRepeatedSubstring; 
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta