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

Comparar dos strings, no soy capaz :(

Estas en el tema de Comparar dos strings, no soy capaz :( en el foro de Java en Foros del Web. Hola a todos, parece rídiculo, pero no soy capaz de comparar 2 strings :( Tengo esta función: public String getCamposTabla(String NombreTabla){ String xml =""; String ...
  #1 (permalink)  
Antiguo 29/05/2007, 07:49
 
Fecha de Ingreso: julio-2003
Mensajes: 240
Antigüedad: 20 años, 9 meses
Puntos: 1
Comparar dos strings, no soy capaz :(

Hola a todos, parece rídiculo, pero no soy capaz de comparar 2 strings :(

Tengo esta función:

public String getCamposTabla(String NombreTabla){
String xml ="";
String NTabla="";
int i = 0;
int tam = VTablas.size();

for ( i = 0; i < VTablas.size (); i++) {
TablaBean TablaB = (TablaBean) VTablas.get(i);
NTabla = TablaB.getNombreTabla();

if (NTabla == NombreTabla.trim()) // ESTA COMPARACIÓN FALLA !!
{
xml = TablaB.getListadoTabla();
}
}
return xml;
}


Pues bien, con Netbeans y en modo de "depuración" veo como llego hasta el if, los dos strings son iguales y ...... no entra, es inaudito.

He probado con otras comparaciones y no soy capaz.

No sé mucho de java, casi nada, pero creo que es algo muy sencillo y seguro que estoy pasando algo por alto.

A ver si me podeís ayudar, un saludo y gracias de antemano.

Pd: Estas son mis pruebas:


NO FUNCIONA:
============



if (NTabla.equalsIgnoreCase(NombreTabla))
{
xml = TablaB.getListadoTabla();
}

if (NTabla.compareTo(NombreTabla) == 0)
{
xml = TablaB.getListadoTabla();
}

if ( NTabla.indexOf(NombreTabla) > 0 )
{
xml = TablaB.getListadoTabla();
}

if (NTabla.matches(NombreTabla))
{
xml = TablaB.getListadoTabla();
}
  #2 (permalink)  
Antiguo 29/05/2007, 09:06
 
Fecha de Ingreso: enero-2007
Mensajes: 156
Antigüedad: 17 años, 3 meses
Puntos: 1
Re: Comparar dos strings, no soy capaz :(

Hola!! La comparación de Strings deberias de hacerla de la siguiente forma:

cadena1.equals(cadena2)

función que te devuelve true en caso de que ambas cadenas sean iguales. No estoy muy segura pero creo que en el caso de cadenas, el == compara que se encuentren en la misma posición de memoria no que contengasn los mismos caracteres.

Saludos!!
  #3 (permalink)  
Antiguo 29/05/2007, 09:08
Avatar de Yaraher  
Fecha de Ingreso: abril-2007
Ubicación: Lima, Perú
Mensajes: 262
Antigüedad: 17 años
Puntos: 9
Re: Comparar dos strings, no soy capaz :(

Recuerda que Java es un lenguaje orientado a Objetos, y ambos Strings son Objetos distintos, por lo que esa comparación no puede darse como cierta.

Si quieres evaluar si las cadenas que componen ese objeto son iguales, utiliza el método "equals" ( string1.equals(string2) ).

Compare se refiere a otra cosa, y te devolverá un valor entero.
Saludos!
  #4 (permalink)  
Antiguo 29/05/2007, 13:41
Avatar de cris_maco  
Fecha de Ingreso: abril-2007
Ubicación: Salamanca
Mensajes: 254
Antigüedad: 17 años
Puntos: 0
Re: Comparar dos strings, no soy capaz :(

para comparar string yo uso compareTo o CompareToIgnoreCase

mas info en:
http://euitio178.ccu.uniovi.es/wiki/...mparar_cadenas
  #5 (permalink)  
Antiguo 30/05/2007, 00:15
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Comparar dos strings, no soy capaz :(

Para comparar igualdad yo recomendaría usar equals, ya que no todos los objetos son "Comparables". Además, Comparable intenta además determinar el orden, en caso de que sean distintos, y por eso podría ser menos eficiente.

S!
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

SíEste tema le ha gustado a 2 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 07:53.