Comparar um char com uma String

3 respostas
brunoejaera

Boa Tarde pessoal, estou fazendo um trabalho pra faculdade que consiste em uma agenda e estou tendo problemas em 2 métodos, o primeiro seria o método confirma(), o usuário vai digitar “s” = sim ou “n”= não, se ele digitar “s” eu quero que o meu método retorne TRUE, o problema é o laço, pq o compilador diz que eu estou comparando um char com uma string, deve ser uma pergunta bem ridicula mas iniciante é uma droga msmo…kkk…tem problema se eu postar depois o meu segundo problema nesse msmo tópico ou devo abrir um novo ???

Segue o código.

public boolean confirma(String msg){ char opcao; System.out.println("\n" + msg); do{ opcao = (char) System.in.read(); } while((opcao != "s") || (opcao != "n")); return true; }

3 Respostas

Andre_Rosa

Caracteres são representados por aspa simples e não aspas duplas.

while((opcao != 's') || (opcao != 'n'));
adrielcafe

Quando você usa aspas duplas quer dizer que é uma String. Para char use aspas simples, assim:

while((opcao != 's') || (opcao != 'n'));
Andre_Rosa

Outro detalhe é que você utilizou um ponto e vírgula após o while. Creio que o que você queira, na verdade, seja isso:

while((opcao != 's') || (opcao != 'n')) return true;

ou seja, enquanto a variável “opção” for diferente de ‘s’ e ‘n’, será retornado true.

Criado 25 de setembro de 2011
Ultima resposta 25 de set. de 2011
Respostas 3
Participantes 3