Problemas pegando caracter / JAVA

Bom dia,
Estou tendo um problema pegando caracter do teclado com o System.in.read(); gravando esse caracter numa variável “int” para depois verificar num switch(); fazendo tipo um menu de opções. O q acontece eh q qdo o switch(); verifica a variável ele executa a opção recebida do teclado mas depois gera opções inválidas no “default” do switch(); essas opções se referem aos códigos ASC II das teclas pressionadas.
Ex:
se eu teclo o número 1, o switch executa esta opção normalmente, mas depois de terminado em vez de esperar novas opções ele executa o número 49, 10 e 13; respectivamente código ASC II da tecla 1 e códigos ASC II da tecla <ENTER>.
Qdo eu faço o mesmo com readLine(); e depois converto de String para int ele naim executa opção nenhuma. ALguém poderia me ajudar, por favor?
um pequeno trecho do código abaixo:



int op;
String sOp = new String();
BufferedReader ent;
ent = new BufferedReader(new InputStreamReader(System.in));

try {
op = System.in.read();
// sOp = ent.readLine();
// op = Integer.parseInt(sOp);
System.out.println(op);
System.out.println(sOp);
}
catch (IOException e) {
System.out.println(e);
}

switch (op) {
case ‘1’ : …
case ‘2’ : …
default : …
}…

obrigado,
Alex

Não use o método System.in.read() pq ele vai te retornar o valor ASC de tudo oq receber. Quando vc tecla 1, ele recebe 49 (valor asc do 1), 10 (quebra de linha) e 13 (retorno de carro). Segue uma solução possível:

BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
char c = (char)buffer.read();

Vc pode usar o readLine di BufferedReader e converter usando Integer.parseInt(), por exemplo.

Valew Neto,
obrigado pela força kra!!!

Alex. :lol: