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] 
-------------------------------------------------------------------------

Responder a