Problema com leitura de dados [ RESOLVIDO ]

6 respostas
T

tenho o seguinte trecho de codigo......estou com problema na leitura usando o scanner.....ele tah pulando a leitura do aux, e soh faz do aux 2, dando erro na comparacao dos chars

case 1:
                           String aux, aux2;
                           do{
                              System.out.print("Qual carta da mesa ?\n");
                              aux=input.nextLine();				
                              System.out.print("\nQual carta da mao ?");
                              aux2=input.nextLine();
                           
                              
                           }
                           while(!(aux.charAt(0)==aux2.charAt(0)));
                           f1.removerX(aux2);
                           mesa.removerX(aux);
                           p1.inserir(aux);
                           p1.inserir(aux2);
                           p1.mostrar();

onde estou errando ?

6 Respostas

Flavio_Luiz

esses char terão quanto caracteres ?

T

desculpa mas nao intendi a pergunta…o programa faz o seguinte, entrando no caso 1, ele deveria ler uma carta (ex: “As de paus”) e depois outra carta
seria qual carta o cara quer da mesa, e qual ele tem na mao…dai eu comparo o primeiro char das duas, para ver se eu posso deixar ele roubar o monte ( jogo rouba-monte )
deu pra entender mais ou menos ?

dai o negocio eh q ele simplesmente nao le o aux…passa direto pro aux2

AnderLuiz

Tenta assim:

case 1:
                           String aux, aux2;
                           do{
                              System.out.print("Qual carta da mesa ?\n");
                              aux=(new Scanner(System.in)).nextLine();		
                              System.out.print("\nQual carta da mao ?");
                              aux2=(new Scanner(System.in)).nextLine();
                           
                              
                           }
                           while((aux.charAt(0)==aux2.charAt(0)));
                           f1.removerX(aux2);
                           mesa.removerX(aux);
                           p1.inserir(aux);
                           p1.inserir(aux2);
                           p1.mostrar();
T

deu certo, brigadao!!

Sabe me explicar mais ou menos oq eu tava fazendo errado ?

AnderLuiz

Não sei explicar muito bem mas vou tentar.
O Scanner trabalha como um buffer. Por exemplo, se você der um scanner.nextInt(); ele vai te retornar o proximo inteiro nao lido ainda pelo Scanner. Nesse caso o seu Scanner não leu alguma linha anterior e seu aux recebeu essa linha.

Tente dar um System.out.println(aux); depois de lê-lo para ver o que imprime fazendo da forma que você estava fazendo.

Ah, e se não me engano (porque nunca testei) o metodo reset() do scanner limpa o seu Scanner nao precisando instancia-lo novamente.

T

ok, vlw…quebrei demais a cabeça com essa p**** hhauhuaha.

Criado 2 de outubro de 2009
Ultima resposta 2 de out. de 2009
Respostas 6
Participantes 3