o método charAt() da classe String retorna um char, então vc não pode fazer isto
strRecebida.charAt(indice-1).equals(" ")
Mas existe uma classe que se encaixa perfeitamente para o que vc quer, é a classe StringTokenizer
Ex.:
import java.util.StringTokenizer
public static void main(String[] args)
{
}
a saída será a seguinte
Número de palavras: 3
Java
é
legal
At 10:01 22/9/2001 -0300, you wrote:
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(" "))) {
cont++;
indice++;
}else{
indice = strRecebida.indexOf(" ",indice);
}
}
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
-------------------------------
Silvio Fragata da Silva
Infonet Serviços
[EMAIL PROTECTED]
www.infonet.com.br/fragata
-------------------------------