Olá comunidade.
Queria me informar mais sobre esse método. Meu professor quer um código que bote em ordem alfabética nomes lidos pelos usuários, porém o que eu achei até agora foram outros métodos como equals, arrays… Tenho um prazo pra entregar até amanhã e não consegui construir nada com que ao menos se pareça kkkk Também não consigo encontrar em fóruns códigos com a utilização do compareTo.
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.
1 curtida
Em uma simples pesquisa nos sites de buscas tem a explicação do compareTo
Explicação
Inglês
The value 0 if the argument is a string lexicographically equal to this string; a value less than 0 if the argument is a string lexicographically greater than this string; and a value greater than 0 if the argument is a string lexicographically less than this string.
Tradução (Google Translator)
O valor 0 se o argumento é uma string lexicographically igual a este string; um valor inferior a 0 se o argumento é uma string lexicographically maior do que essa string; e um valor maior que 0 se o argumento é uma string lexicographically inferior a esta cadeia .
Referencia: Java - String compareTo() Method
String a0 = "iguais";
String a1 = "iguais";
System.out.println(a0.compareTo(a1)); // 0
String a2 = "diferente";
System.out.println(a0.compareTo(a2)); // 5
1 curtida
Você pode adicionar os nomes em um ArrayList de String, e utilizar o método estático da classe Collections para realizar a ordenação dos nomes para você, já que a classe String já tem uma implementação compareTo pronta.
Exemplo:
List<String> lista = new ArrayList<String>();
lista.add("Maria");
lista.add("Joao");
Collections.sort(lista);
Com isso sua lista de nomes será ordenada.
Cara, tinha até pensado desse jeito sabia? Mas tava tão inseguro à cerca de como fazer kkkkk Mas obrigado, vou entender como ele funciona pra implementação! 
1 curtida