O metodo read() nesses casos ( int ou byte[] ) devolve sempre o valor
decimal da tecla digitada.
Exemplo1:
.
int n;
System.out.println("Tecle algum numero :");
n=System.in.read();
Se for teclado 1, n conterá 49 (valor decimal que representa o caracter
ASCII 1) e não o valor 1.
Além disso a declaração n=System.in.read() não indica que em n só será
admitido numeros, mas sim qualquer caracter ASCII.
Isso se deve ao fato de que o metodo read() é da classe InputStream, que faz
tratamento
de bytes e não caracteres.
Exemplo 2:
byte[] n = new byte[4];
int x;
System.out.println("Tecle algum numero :");
x = System.in.read(n);
Se for teclado 78932, n conterá o seguinte: n[0]=55, n[1]=56, n[2]=57,
n[3]=51 e o quinto numero será perdido, e x conterá 4 (numero de bytes
lidos).
Se for teclado A46, n conterá o seguinte: n[0]=65, n[1]=52, n[2]=54, e x
conterá 3.
Então se Vc. quiser fazer um metodo que leia um numero inteiro, Vc. deverá
fazer o seguinte:
1) Jogar o string lido em um byte[];
2) Verificar se só foi digitado numeros;
3) Converter o valor de cada elemento do array para seu caracter ASCII
correspondente;
4) Concatenar tudo em uma string;
5) Converter esse string em um inteiro.
Roberto Tatemoto
----- Original Message -----
From: "Marcelo Quintella" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, February 05, 2001 12:11 PM
Subject: RE: [java-list] como faço para ler um numero ???
Alguns problemas no seu codigo:
1) Nao existe o methodo read() que receba um int como parametro. Voce
deveria usar um byte[] para este method
2) A variavel nao pode ser declarada dentro da chamada para a funcao. Mesmo
que existisse o method read que voce deseja, voce o chamaria com:
int n=0;
System.in.read(n).
(Esse eh o motivo do erro que voce recebeu ao tentar compilar o programa).
3) A chamada para System.in.read() deve estar dentro de um try/catch para
IOException.
Usando o metodo read eu ACHO que a unica maneira eh ler numa variavel byte[]
e ler cada item do array para interpretar cada algarismo do numero.
Espero que ajude.
Marcelo Quintella
-----Original Message-----
From: Daniel Cruz [mailto:[EMAIL PROTECTED]]
Sent: Sunday, February 04, 2001 7:31 AM
To: [EMAIL PROTECTED]
Subject: [java-list] como faço para ler um numero ???
public class iotestar {
public static void main(String args[])
{
int n;
System.out.println("Escreva algum numero:");
System.in.read(int n); // "iotestar.java": Error #: 203 :
illegal start of type at line 19, column 22
System.out.println("Voce escreveu " + n);
}
}
Porque nao consigo ler "n" ????? como faço para que o codigo acima funcione
?
PS: O erro está do lado da linha.
Até mais,
Daniel Cruz
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------