Conversão Char, pega somente o índice = 0, duvida

6 respostas
wilsontads

Seguinte pessoal, estou tendo problemas com a seguinte conversão.
é que preciso pegar a palavra em sim por completo, e ir comparando letra por letra, solicitadas ao usuário final.
o problema é que quando eu converto, por exemplo se eu digito
castelo, ele pega apenas o C.
informa correto, que a palavra tem 8 caracteres e talz… mas, não pega a palavra por completa…=
alguém poderia me ajudar?

String venha = JOptionPane.showInputDialog(null,"Digite a palavra secreta: "); int tam = venha.length(); char secreta = venha.charAt(0);

6 Respostas

Felagund
for (int i = 0; i < venha.length; i++){
           System.out.println(venha.charAt(i));
}

Simple pratico e rapido.

marcosharbs

calro vai pegar apenas o ‘C’ de ‘Castelo’ por que vc está passando i índice 0, ou seja vai pegar o primeiro caractere da palavra apenas, vc tem que fazer um loop por exemplo, faça algo assim:

for (int i=0; i<venha.length(); i++){
     System.out.println(venha.charAt(i) + "\n");
}

se executar esse código vai ver que a saída vai algo assim:

C
A
S
T
E
L
O

pq tem um loop pegando cada caracter da palavra informada, se deseja percorrer cada caracter da palavra vc poderia fazer algo parecido com isso, qq dúvida posta ai, abraço.

Mikhas

Você pode usar o metodo String.toCharArray();

O

Não me diga que você tá querendo comparar Strings na mão?

wilsontads
Não me diga que você tá querendo comparar Strings na mão?

na verdade, to tentando fazer um joguinho da forca.. mas, as únicas armas que eu tenho em mãos são..
length e charAt.
não posso usar arrays, vetores, etc.. apenas os dois.. mas, to tendo um super problemão ao pegar a palavra digitada pelo usuário, e comparar com os caracteres chutados.. vejam o código por completo..

import javax.swing.JOptionPane;

public class jogoForca {

    public static void main(String[] args) {

   {
      char/*secreta=' '*/ aux='w';
      String msg= "Boa sorte!";
      int i, erros=0, acertos=0, tam =0;
      char ch;

     String secreta = JOptionPane.showInputDialog(null,"Digite a palavra secreta: ");
     tam = secreta.length()-1;
     for (int bo = 0; bo < tam; bo++){  
            secreta.charAt(bo);
    }
     

            
         JOptionPane.showMessageDialog(null,"A palavra tem: "+ tam +" letras e a dica é: ");
      
      while ((erros < 6) && (acertos < tam))
      {
        JOptionPane.showMessageDialog(null,"erros: " +erros+ "\nacertos: "+ acertos);
         String nossa = JOptionPane.showInputDialog(null,"Digite um caractere: ");
         ch = nossa.charAt(0);
         for (i=0; i<tam; i++)
         {
            if (aux == ch)
            {
               JOptionPane.showMessageDialog(null,"Já digitado!");
               erros++;
            }

            else if (aux == ch)
            {
               JOptionPane.showMessageDialog(null,"Acertou!");
               acertos++;
            }
         
         if (aux != ch)
         {
            JOptionPane.showMessageDialog(null,"Errou!");
            erros++;
         }
         }
        
               }
      if (erros >< 6)
         JOptionPane.showMessageDialog(null,"Parabéns!");
      else
         JOptionPane.showMessageDialog(null,"Você perdeu! a Palavra era: "+ secreta);
   }
    }

}
|
pmlm
wilsontads:
if (aux == ch)
            {
               JOptionPane.showMessageDialog(null,"Já digitado!");
               erros++;
            }

            else if (aux == ch)
            {
               JOptionPane.showMessageDialog(null,"Acertou!");
               acertos++;
            }

Quer-me parecer que nunca ninguém vai ver a mensagem "Acertou" :-)

Criado 19 de maio de 2009
Ultima resposta 19 de mai. de 2009
Respostas 6
Participantes 6