Dados do teclado

como eu faco pra pegar dados do teclado no modo texto?
por exemplo eu quero pegar numeros inteiros, ai estou usando o System.in.read() , ele pega o codigo ascii, depois eu uso &0x0f pra transformar pra inteiro, mas quando eu coloco um numero negativo dai o resultado da errado, pq eu acho q ele nao converte o sinal de nagativo. Q q eu uso pra dar certo ??

[quote=“rafawell”]como eu faco pra pegar dados do teclado no modo texto?
por exemplo eu quero pegar numeros inteiros, ai estou usando o System.in.read() , ele pega o codigo ascii, depois eu uso &0x0f pra transformar pra inteiro, mas quando eu coloco um numero negativo dai o resultado da errado, pq eu acho q ele nao converte o sinal de nagativo. Q q eu uso pra dar certo ??[/quote]

Cara na verdade eu acho q o metodo read() pega o proximo byte do texto q vc digitou, nesse caso do numero negativo vc deve (usando esse metodo) obter o primeiro caracter e ver se é um simbolo ASCII para o caracter “-”, se for vc desconsidera e vai pegando o resto do numero (so o valor abs) depois vc multiplica por -1 pra n perder o sinal, pois vc sabe q é negativo qdo viu q o primeira caracter é “-”.

:arrow: ex.: se vc digita -23

terar q fazer “System.in.read()” 3 vezes, uma pra cada caracter, o primeiro é -, o segundo é 2 e o terceiro é 3, é claro q convertido p o cod ASCII. por isso qdo tenta pegar n negativo ele da erro, pq o primeiro caracter de um numero negativo é “-”.

qdo vc faz um AND de 0x0f = …01111 com ‘a’ (por exemplo) q é 97 = …01100001 ele resulta no seguinte:

…00001111
…01100001

…00000001 = 1 (hum)

ñ vejo sentido nisso! :???:

acho q é isso, COMPLiquei ? :oops:

procure pela classe Console que tem no livro Core Java volume 1
ela ja possui muitos metodos que podem facilitar o seu trabalho.

se voce nao tiver o livro voce pode acha-la na internet