Problema con parseInt

Monkkey
05 de Octubre del 2005
public class TestNumeros {
int numero = 0;
StringBuffer st = new StringBuffer("");
char c;
public int lee() throws IOException
{

c = (char)System.in.read();
while (c != 'n')
{
st.append(c);
c = (char)System.in.read();
System.out.print(c);
}

numero = Integer.parseInt(st.toString());
return numero;
}


CONSOLA:

1111
111
Exception in thread "main" java.lang.NumberFormatException: For input string: "1111
"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at Practica2.TestNumeros.lee(TestNumeros.java:18)
at Practica2.TestNumeros.main(TestNumeros.java:24)

nicokiki
05 de Octubre del 2005
Hola!!!

Por lo q se ve tenes un 'n' en la cadena. No se si se banca eso..... Fijate

chuidiang
05 de Octubre del 2005
Hola:

En windows el retorno de carro son dos caracteres, un r y un n.
En tu codigo buscas el n. Posiblemente el r se esté metiendo como parte del número.
Puedes leer ignorando cualquiera de los dos caracteres r o n o bien puedes leer una linea completa con el método adecuado, que ya excluye bien el rn. Puedes ver cómo se hace esto último en http://chuidiang.blogspot.com/2005/09/entrada-standard-en-java.html

Se bueno