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

Ayuda comparacion entre char y String. :(

Estas en el tema de Ayuda comparacion entre char y String. :( en el foro de Java en Foros del Web. Hola gente!!! Tengo un problema que no pude resolver, la idea es hace una comparacion entre un campo char y otro String y no me ...
  #1 (permalink)  
Antiguo 26/06/2010, 15:46
 
Fecha de Ingreso: diciembre-2009
Mensajes: 11
Antigüedad: 15 años
Puntos: 0
Ayuda comparacion entre char y String. :(

Hola gente!!!

Tengo un problema que no pude resolver, la idea es hace una comparacion entre un campo char y otro String y no me funciono nada lo que es Character.toString (); ej:

Teoricamente error no me tira pero tampoco funciona, algun consejo?

String st1="h";

char ch1='h';

String str = Character.toString(ch1);

if(st1==str)
{
System.out.println("correcto");
}
else
{
System.out.println("incorrecto");
}
  #2 (permalink)  
Antiguo 26/06/2010, 15:57
Avatar de calichecal  
Fecha de Ingreso: junio-2009
Ubicación: Colombia
Mensajes: 288
Antigüedad: 15 años, 6 meses
Puntos: 12
Respuesta: Ayuda comparacion entre char y String. :(

Yo siempre comparo asi:
ej:

String st1="h";

char ch1='h';

if( (int)(ch1)==(int)( st1.charAt(0) ) )
{
System.out.println("correcto");
}
else
{
System.out.println("incorrecto");
}

comparo son los códigos ansii de ambas letras, ayudándome con un método que me devuelve el caracter de un String que se encuentre en la posición especificada en este caso la unica posicion posible de st1, el cero, y funciona perfectamente.
__________________
Hay una fuerza motriz más poderosa que el vapor, la electricidad y la energía atómica: la voluntad. -Einstein-

Última edición por calichecal; 26/06/2010 a las 16:17
  #3 (permalink)  
Antiguo 29/06/2010, 08:35
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 7 meses
Puntos: 306
Respuesta: Ayuda comparacion entre char y String. :(

El problema lo tienes por usar el == para comparar cadenas, utiliza siempre equals

st1.equals(str)

Al utilizar el == no comprueba si dos cadenas tienen las mismas letras, sino que ocupen la misma posición de memoria. En el caso de las cadenas, influye la forma en que se ha creado la cadena, y en tu ejemplo una es una String y la otra es una conversión de un char.

Si hubieses creado str y st1 como ="h", te habría servido ==, pero no te serviría aunque fuesen las dos Character.toString('h').

Por eso utiliza equals, que funciona siempre.
  #4 (permalink)  
Antiguo 29/06/2010, 16:17
 
Fecha de Ingreso: diciembre-2009
Mensajes: 11
Antigüedad: 15 años
Puntos: 0
Respuesta: Ayuda comparacion entre char y String. :(

Grax gente, finalmente anduvo barbaro simplemente agregando el .charAt(0) a una variable String cuando del otro lado ya tenes otra variable char.

Saludos
  #5 (permalink)  
Antiguo 29/06/2010, 17:28
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 21 años, 2 meses
Puntos: 51
Respuesta: Ayuda comparacion entre char y String. :(

Si comparas char, tipo primitivo, es innecesario convertir el valor a int ya que los tipos primitivos son comparables directamente con ==. Por eso simplemente con el .charAt(0) funciona.

Sin embargo, hay que recordar que sólo funciona para tipos primitivos. Para objetos hay que usar equals, como bien dice Xerelo.
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #6 (permalink)  
Antiguo 29/06/2010, 23:47
Avatar de calichecal  
Fecha de Ingreso: junio-2009
Ubicación: Colombia
Mensajes: 288
Antigüedad: 15 años, 6 meses
Puntos: 12
Respuesta: Ayuda comparacion entre char y String. :(

aja tienen razón, pero en este caso es innecesaria la conversión a String para comparar, teniendo ya un char.
__________________
Hay una fuerza motriz más poderosa que el vapor, la electricidad y la energía atómica: la voluntad. -Einstein-
  #7 (permalink)  
Antiguo 29/06/2010, 23:55
Avatar de calichecal  
Fecha de Ingreso: junio-2009
Ubicación: Colombia
Mensajes: 288
Antigüedad: 15 años, 6 meses
Puntos: 12
Respuesta: Ayuda comparacion entre char y String. :(

Cita:
Iniciado por GreenEyed Ver Mensaje
Si comparas char, tipo primitivo, es innecesario convertir el valor a int ya que los tipos primitivos son comparables directamente con ==. Por eso simplemente con el .charAt(0) funciona.

Sin embargo, hay que recordar que sólo funciona para tipos primitivos. Para objetos hay que usar equals, como bien dice Xerelo.
buena esa !! no la sabia jeje graxx
__________________
Hay una fuerza motriz más poderosa que el vapor, la electricidad y la energía atómica: la voluntad. -Einstein-

Etiquetas: char, comparacion, string
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 17:58.