teste esse código, de uma mexida, entenda o comportamento dele, acho que você pode tirar uma idéia.
public static void main(String[] args) {
String nome1 = "Ana Carolina";
String nome2 = "Roberto Soares";
if (nome1.compareTo(nome2) < 0) {
JOptionPane.showMessageDialog(null, "Nome: " + nome1+" vem Antes de: "+nome2);
} else {
JOptionPane.showMessageDialog(null, "Nome: " + nome2+" vem Antes de: "+nome1);
}
}
ele compara lexicograficamente as String e verifica se uma é maior que a outra, retorna valores menores que zero se a palavra for antecessora da outra, retorna 0 se forem iguais, e valores maiores que 0 se for sucessora.
lembrando que este método é case sensitive, ou seja leva em conta maiúsculas e minusculas, sendo que as maiúsculas vem primeiro, experimente colocar o “A” de Ana em minusculo, o resultado será que Roberto Soares é predecessor de ana Carolina, para ignorar maiusculas use o compareToIgnoreCase();
espero ter ajudado.