Foros del Web » Programación para mayores de 30 ;) » Java »

problema con un pequeño programita

Estas en el tema de problema con un pequeño programita en el foro de Java en Foros del Web. Holaa! De antemano un saludo. Estoy estudiando programación y soy nuevo en esto. Me surgió un problema inusual, al poner en marcha un programita que ...
  #1 (permalink)  
Antiguo 17/09/2009, 14:34
Avatar de Philip7  
Fecha de Ingreso: septiembre-2008
Mensajes: 56
Antigüedad: 15 años, 8 meses
Puntos: 1
Exclamación problema con un pequeño programita

Holaa!
De antemano un saludo.

Estoy estudiando programación y soy nuevo en esto.
Me surgió un problema inusual, al poner en marcha un programita que mi maestro me dio.

Es el siguiente:

public class Adios {
int a,b;
float c,d;

public Adios() {
}
public Adios(int p,float r)
{
a=p;
c=r;
}
public Adios(int m, int n, float ñ, float o)
{
a=m;
b=n;
c=ñ;
d=o;
}
int proceso(int z, int w)
{
Teclado zz=new Teclado();
int resp=0,op;
System.out.println("1.- Suma\n2.-Resta");
op=zz.leeInt();
switch(op)
{
case 1:
{
resp=z+w;
break;
}
case 2:
{
resp=z-w;
break;
}
default:
System.out.println("Error, intente de nuevo");

}
return(resp);
}

void imprime(int t)
{
System.out.println("El proceso es = "+t);
}
float proceso2(float r1, float r2)
{
float r3;
r3=r1*r2;
return(r3);
}
public static void main(String []args)
{
float aux2;
int aux;
Adios f= new Adios();
Teclado j=new Teclado();
System.out.println("Introduce primero 2 valores enteros y luego 2 valores con decimales");
f.a=j.leeInt();
f.b=j.leeInt();
f.c=j.leeFloat();
f.d=j.leeFloat();

Adios f2=new Adios(1,3.0f);
Adios f3=new Adios(1,3,5.0f,2.0f);

aux=f2.proceso(f.a,f2.a);

f.imprime(aux);

aux2=f3.proceso2(3.0f,f3.d);
f.imprime((int)aux2);
System.exit(0);
}



}

__________

Entonces el problema es lo siguiente al compilarlo todo bien, pero al ejecutarlo y colocar el segundo valor entero cuando me lo solicitan aparece este error

Exception in thread "main" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(Num berFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:470)
at java.lang.Integer.parseInt(Integer.java:499)
at Teclado.leeInt(Teclado.java:18)
at Adios.main(Adios.java:65)

Entonces lo raro es que cuando el codigo lo compilo en un editor mas antiguo de Jcreator no me sale este error, pero al ejecutarlo en una version reciente, me aparece el error mencionado.

La verdad ya luche con esto pero no le encuentro el porque del problema,
Gracias por su tiempo, espero que me den una respuesta lógica a esto que me esta matando.
  #2 (permalink)  
Antiguo 17/09/2009, 19:13
 
Fecha de Ingreso: marzo-2008
Mensajes: 39
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: problema con un pequeño programita

puedes ser mas amable y poner la clase Teclado :S , pero masomenos el error es porque en algun lado se hace una conversion de cadena a entero y a la cadena no se le quitaron los espacios al principio o al final; se puede con trim, o la cadena contiene caracteres no numericos . un saludo
  #3 (permalink)  
Antiguo 18/09/2009, 05:56
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: problema con un pequeño programita

Yo pondría

f.imprime((float)aux2);

en vez de:

f.imprime((int)aux2);

Casi al final de tu código. Es que un int lo pasa fácil a float, pero si intentas pasar un float a int salta una excepción. Y hasta donde vi aux2 es un float.
  #4 (permalink)  
Antiguo 20/09/2009, 21:41
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: problema con un pequeño programita

imagino que estas leyendo del teclado con bufferedreader no, coloca bien las dos clases en un cuadro de codigo para entender mejor, coloca la clase teclado para ver que hay en la linea dodne te marca el error
__________________
Solo se que nada se . . . Nirvana: Un Sentimiento Echo Realidad.
  #5 (permalink)  
Antiguo 21/09/2009, 17:09
Avatar de YnotZero  
Fecha de Ingreso: diciembre-2006
Ubicación: Frente a mi computadora
Mensajes: 14
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: problema con un pequeño programita

el error debe estar en la captura, Exception in thread "main" java.lang.NumberFormatException: For input string: "" significa que estas capturando un string en lugar de un integer, pero por lo que veo, es mas bien un espacio en blanco. como dicen los compañeros, hasnos favor de postear la clase "lee" para saber como esta funcionando.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:32.