Monica,
 
Aqui vai o c�digo correto.
Embaixo fiz algumas nota��es , espero ter ajudado.
 
Allan
 
 
class ShowSentence{
 public static void main(String[] arg){
  int cont=0;
 
  String strRecebida = arg[0];
 
  //retira os espa�os brancos do inicio e fim da string
  strRecebida = strRecebida.trim();
  System.out.println(strRecebida);
  //pega o indice do primeiro espa�o em branco
  int indice = 0;
  indice = strRecebida.indexOf(" ");
 
  cont++;
 
  while (indice < strRecebida.length()) {
 
   if ((strRecebida.charAt(indice - 1) != ' ') && (strRecebida.charAt(indice) == ' ')) {
    cont++;
    indice++;
   }else{
     indice = strRecebida.indexOf(" ",indice);
     if(indice < 0)
     {
  indice = strRecebida.length();
 
   }
    }
  }
  System.out.println(cont);
 }
}
-----Mensagem original-----
De: Monica Barreto [mailto:[EMAIL PROTECTED]]
Enviada em: S�bado, 22 de Setembro de 2001 10:01
Para: [EMAIL PROTECTED]
Assunto: [java-list] Problemas de principiante!!!

Oi Pessoal,
 
estou come�ando em programa��o agora e escolhi Java como minha primeira linguagem. Estou tendo uns probleminhas com a classe abaixo que estou tentando fazer. Esta classe deveria receber uma frase como par�metro e informar o n�mero de palavras que a frase cont�m. Essa frase � passada entre aspas.
 
Estou enviando a classe e a msg de erro que recebo ao tentar compilar. Quem puder por favor me ajude, pois parei nesse problema e n�o estou conseguindo sair dele.
 
 
class ShowSentence{
 public static void main(String[] arg){
  int cont=0;
 
  String strRecebida = arg[0];
 
  //retira os espa�os brancos do inicio e fim da string
  strRecebida.trim();
 
  //pega o indice do primeiro espa�o em branco
  int indice1 = strRecebida.indexOf(" ");
  int indice = indice1;
  cont++;
 
  while (indice < strRecebida.length()) {
   if ((strRecebida.charAt(indice-1).equalsTo(" ")) && (strRecebida.charAt(indice).equalsTo(" "))) {
[Allan Moreira] Se entendi a sua l�gica, vc testa um caracter branco e o outro deveria ser diferente de branco, se for isto tem um erro de l�gica e o outro erro � de linguagem com conceito, charAt retorna um char que � um tipo primitivo o que permite que vc fa�a uma compara��o direta ex.: charAt(indice-1) == 'a' . 
    cont++;
    indice++;
   }else{
     
indice = strRecebida.indexOf(" ",indice);[Allan Moreira]  Isto retorna -1 se n�o encontrar...Cuidado pq vc atribui a mesma variavel do while 
    }
  }
  System.out.println(cont);
 }
}
 
Msg de erro:
C:\Java\exemplos\ShowSentence.java:16: char cannot be dereferenced
   if ((strRecebida.charAt(indice-1).equals(" ")) && (strRecebida.charAt(indice).equals(" "))) {
                                               ^
C:\Java\exemplos\ShowSentence.java:16: char cannot be dereferenced
   if ((strRecebida.charAt(indice-1).equals(" ")) && (strRecebida.charAt(indice).equals(" "))) {
                                                                                             ^
2 errors
Process completed with exit code 1

Responder a