String
Intento leer un String que solo va a contener una letra, y quiero pasar esa letra a caracter con charAt. Tengo hecho un método que se llama Leer.porTeclado que lee Strings y con ese método tengo que leer el String, el problema es que cuando hago
char opcion=m.charAt(0);//pues el caracter está al principio
no sé si lo coge bien, ya que al hacer
if opcion=='S'//imaginando que yo e introducido 'S' por teclado no cumple bien la condición
Entonces no sé qué pasa==> He probado a hacer un trim() del String no fuera ser que el buffer leyera los espacios que pudiera haber entre la linea en la que pido el String y en la linea en la cual lo introduzco,
Gracias
char opcion=m.charAt(0);//pues el caracter está al principio
no sé si lo coge bien, ya que al hacer
if opcion=='S'//imaginando que yo e introducido 'S' por teclado no cumple bien la condición
Entonces no sé qué pasa==> He probado a hacer un trim() del String no fuera ser que el buffer leyera los espacios que pudiera haber entre la linea en la que pido el String y en la linea en la cual lo introduzco,
Gracias
Has hecho un System.out.print(opcion) para ver que es lo que obtienes.
Mi teoria no es buena, pero se que char e int se solapan una barbaridad, (existen metodos que teoricamente devuelven un char, pero que si asignas su resultado a un char generar un error, por posible perdida de precision). Usa el metodo print para ver que es lo que obtienes, y en caso de ser un numero usa un System.out.print((char)opcion), para ver si asi obtines la consabida s.
Te ofrezco un truco para conseguir lo que intentas.
String m = Leer.porTeclado(...); //leo la cadena
String upper = m.toUpperCase(); // todo a mayusculas
if(upper.startsWith("S")) //compruebo si empieza con al cadena S (podria comprobarse con cadenas mas largas)
...
Mi teoria no es buena, pero se que char e int se solapan una barbaridad, (existen metodos que teoricamente devuelven un char, pero que si asignas su resultado a un char generar un error, por posible perdida de precision). Usa el metodo print para ver que es lo que obtienes, y en caso de ser un numero usa un System.out.print((char)opcion), para ver si asi obtines la consabida s.
Te ofrezco un truco para conseguir lo que intentas.
String m = Leer.porTeclado(...); //leo la cadena
String upper = m.toUpperCase(); // todo a mayusculas
if(upper.startsWith("S")) //compruebo si empieza con al cadena S (podria comprobarse con cadenas mas largas)
...