• Domingo 22 de Diciembre de 2024, 21:42

Autor Tema:  Captura De Teclado  (Leído 1308 veces)

Altareum

  • Miembro MUY activo
  • ***
  • Mensajes: 327
    • Ver Perfil
    • http://www.avian.com.ar
Captura De Teclado
« en: Martes 6 de Marzo de 2007, 23:41 »
0
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:

Citar
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.
El postre!, el postre!, el postre!, el postre!, el postre!, el postre!.....
 | Klinka | Kiree | Avian |

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Captura De Teclado
« Respuesta #1 en: Martes 6 de Marzo de 2007, 23:47 »
0
java no permite comparar cadenas utilizando el operador == ni el !=

para tal fin deberas usar el metodo

Código: Text
  1. string.equals
  2.  
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

silverfox

  • Miembro MUY activo
  • ***
  • Mensajes: 280
    • Ver Perfil
Re: Captura De Teclado
« Respuesta #2 en: Miércoles 7 de Marzo de 2007, 15:21 »
0
Hola...

Para convertir las cadenas a números tendrás que ver las clases envoltorio, Integer, por ejemplo, para enteros. En concreto, el método Integer.parseInt().


Un saludo.




Silverfox