1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Ordenação de frases em JAVA

Discussão em 'Programação' iniciada por kabalo, 24 de Janeiro de 2009. (Respostas: 7; Visualizações: 3343)

  1. kabalo

    kabalo Suspenso

    boas.. gostava que me ajudassem a fazer ordenação de frases por ordem alfabetica..tenho um menu que tem como opçoes: ler frases (ate acabar o limite da array), imprimir as frases escritas, ordenar as frases e eliminar uma frase escrita na array.

    Código:
      static String[] lerFrase (String[] frase)
      {
        for(int i=0;i<frase.length();i++)   // linha 51
        {
          frase[i]=readLine("Insira a "+(i+1)+"ª frase: ");
          println();
        }
        return frase;
      }
      
      static void imprimir (String[] frase)
      {
        for(int i=0;i<frase.length();i++)   // linha 61
          println((i+1)+"ª frase: "+frase[i]);
      }
      
      static String[] ordenarFrase(String[] frase)
      {
        //aqui é que ja nao sei, alguem me pode ensinar a fazer ordenação de frases?
      }
      
      static void eliminarFrase(String[] frase)
      {
        //isto tambem nao sei fazer
      }
     
    
    e isto da-me tambem 2 erros que nao percebo:
    2 errors found:
    File: C:\Documents and Settings\Sara\Ambiente de trabalho\Programaçao\experiencia3.java [line: 51]
    Error: C:\Documents and Settings\Sara\Ambiente de trabalho\Programaçao\experiencia3.java:51: cannot find symbol
    symbol : method length()
    location: class java.lang.String[]
    File: C:\Documents and Settings\Sara\Ambiente de trabalho\Programaçao\experiencia3.java [line: 61]
    Error: C:\Documents and Settings\Sara\Ambiente de trabalho\Programaçao\experiencia3.java:61: cannot find symbol
    symbol : method length()
    location: class java.lang.String[]
     
  2. Baderous

    Baderous Banido

    Para ordenar as frases, tens de as comparar através do método compareTo. Consulta a API de Java para veres como funciona. Para eliminar basta percorrer o array de Strings, e para cada posição invocar o método equals entre a String do array e a String que pretendes eliminar. Se for igual, basta colocar essa posição a null ou "".
    Esse erro que te dá é porque não estás a fazer um import. Faz import java.util.*; que isso deve ficar direito.
     
  3. AliFromCairo

    AliFromCairo Power Member

    O método length() não existe; existe é a variável de instância length. Ou seja, precisas de trocar length() por length. Provavelmente estás a confundir com o método size() das colecções de Java.
     
  4. kabalo

    kabalo Suspenso

    vou tentar fazer as ordenaçoes como disses-te entao.. obrigado.


    deixou de dar erros fazendo o que disses-te.. obrigado.
     
  5. IComeFromBehind

    IComeFromBehind Power Member

    Aconselho-te a usar Listas de Strings em vez de Arrays se puderes.
     
  6. kabalo

    kabalo Suspenso

    listas de Strings em vez de Array de Strings? nao sei como se faz.. qual é a diferença? podes dar um pequeno exemplo?
     
  7. IComeFromBehind

    IComeFromBehind Power Member

    Podes declarar uma lista assim:
    Código:
    List<String> frases = new ArrayList<String>();
    ou assim,
    Código:
    List<String> frases = new LinkedList<String>();
    A diferença entre as duas é que o ArrayList usa um array para manter a tua lista e a LinkedList uma lista ligada.

    Consulta a documentação para saberes os métodos que cada uma delas suporta.
     
  8. kabalo

    kabalo Suspenso

    ok vou tentar assim entao.. obrigado :)
     

Partilhar esta Página