Strings em ordem alfabética

4 respostas
C

Como posso criar um progrma que ordene strings em ordem alfabética e números em crescente e decrescente.

4 Respostas

71C4700

Voce deseja criar um programa seu, com algoritmo proprio?

Em Java já existe a classe Collator que realiza a ordenação de String em ordem alfabetica inclusive desconciderando os acentos. Caso deseje seguir este ideia, procura que aqui no GUJ já deve ter algum exemplo pratico.

Caso contrario poderia captura cada caracter e analisa-lo um a um.

Att…

thiagomtek
[color=red]PARA ESSE CÓDIGO FUNCIONAR VOCÊ VAI TER QUE COLOCAR LOGO ABAIXO DO PACKAGE ISSO>[/color]
import java.util.Arrays;
AQUI UM EXEMPLO DE ORDENAÇÃO DE NOMES QUE NO CASO SÃO STRINGS :? É ÓBVIO
String vetor[] = new String[9];

      
       vetor[0] = "Thiago";
       vetor[1] = "Lucas";
       vetor[2] = "Joao";
       vetor[3] = "Marcos";
       vetor[4] = "Maria";
       vetor[5] = "José";
       vetor[6] = "Carol";
       vetor[7] = "Ariane";
       vetor[8] = "Zander";


       //com o .sort você ordena o vetor
       Arrays.sort(vetor);

       //Impressão
        System.out.print ("O nomes em ordem alfabética são ");
       for (int i = 0 ; i<vetor.length;i++)
       {
        

                 System.out.print (vetor[i]+", ");
                   

       }

AQUI UM EXEMPLO DE ORDENAÇÃO DE NÚMEROS QUE NO CASO SÃO FLOATS :?

float aux[] = new float[10];

         aux[0] = 1;
         aux[1] =10;
         aux[2] =9;
         aux[3] =4;
         aux[4] =6;
         aux[5]= 7;
         aux[6]=5;
         aux[7]=3;
         aux[8]=2;
         aux[9]=8;

         Arrays.sort(aux);
       
         for (int aux2=0 ; aux2><aux.length ; aux2++){
             
             
                  
                                                   
                   System.out.print (aux[aux2]+", ");
                  

       }

[color=red]SE VOCÊ QUISER COLOCAR EM ORDEM DECRESCENTE É SÓ VOCÊ INICIALIZAR A VAR aux2 COM 10 E IR DIMINUINDO ELA[/color]

71C4700

Mais existe um problema neste metodo sort,acredito, pois caso as Strings possuam acento elas são consideradas como caracteres diferentes.

Tente passar um Comparable pra o metodo sort e a classe que implementa Compareble, faça a comparação como Collator, pois a implementação do comparaTo da classe String considera como caracteres diferentes: Erika e Érika,mesmo tendo, de forma ordenada no alfabeto BRASILEIRO, considera-las como sendo o mesmo caracter, ou seja ele não verifica o caracter acentuado.

ViniGodoy

O que ele quis dizer é para mudar essa linha:

Arrays.sort(vetor);

Para essa:

Arrays.sort(vetor, Collator.getInstance());

Assim a ordenação respeitará os acentos e aparecerá como seria num dicionário brasileiro.

Criado 27 de agosto de 2009
Ultima resposta 28 de ago. de 2009
Respostas 4
Participantes 4