Hola gente!
Hace unos días me puse a husmear esto del mundo java (a decir verdad, ya estuve metiendo mano en java para celulares). Por suerte el lenguaje no se me hizo nada complicado.
Peeeero, me he encontrado con una situación un tanto embarazosa. Al ver como capturar la entrada del teclado. Quería armar un menú básico para ir provando y resulta que al armar un típico menú de consola, me encontré con los siguientes problemas:
1- Al hacer un
switch para filtrar la opción elegida me tira error de tipo de datos, por lo que ví la entrada de teclado es del tipo
String mientras que un
switch requiere que la variable de la condición sea del tipo numérico (creo que era
int, pero no recuerdo). Intenté hacer un
casting ( v = (int)(s) ), pero me dió error, supongo que no puedo convertirlo tan facilmente.
2- Ya que no pude encontrarle la vuelta al switch, intenté con un
if anidado, pero tampoco tuve resultado. Como la entrada del teclado es del tipo
String, comparé el
1 que debe ingresar por teclado con
"1", pero no hay resultado, siempre da falso.
¿Qué estoy haciendo mal? o ¿Cual es la forma correcta para hacer hambos casos, con switch y con if ?
Acá les dejo el código:
public static void escribir() throws java.io.IOException{
String s;
InputStreamReader ir;
BufferedReader in;
System.out.println("Elija una opción: ");
System.out.println("1- Escribir en un archivo ");
System.out.println("2- Salir ");
ir = new InputStreamReader(System.in);
in = new BufferedReader(ir);
while((s=in.readLine())!=null){
System.out.println("Escrito: "+s);
if(s == "1"){
System.out.println("Escribiendo en un Archivo.");
}else{
System.out.println("La opción no es válida.");
}
}
return;
}
Altareum.