Ordenação de frases em JAVA

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[]
 
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.
 
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.
 
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.
vou tentar fazer as ordenaçoes como disses-te entao.. obrigado.


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.
deixou de dar erros fazendo o que disses-te.. obrigado.
 
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.
 
Back
Topo