String

aydil
09 de Enero del 2004
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

eldrum
09 de Enero del 2004
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)
...