Java - Error al comparar cadenas

 
Vista:

Error al comparar cadenas

Publicado por Raúl (19 intervenciones) el 16/03/2007 00:54:23
Hola, me esta dando un problemilla mi programa...a ver si alguien sabe porque me está pasando esto. El problema es que el codigo nunca entra en ningun if y es muy extraño porque la variable curso he comprobado que contiene "2004/2005". Este mismo codigo si que me funciona si extraigo la cadena de un JComboBox por ejemplo,pero al extraer la cadena de una tabla parece ser que no compara bien, aunque como he dicho antes he comprobado que la variable curso si que contiene la cadena "2004/2005" pero sin embargo no la compara bien en else if (curso == "2004/2005"){aux = "2004-2005";}
A ver si alguien me puede decir algo.Gracias

tabla.addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
int fila = tabla.rowAtPoint(e.getPoint());
if ((fila > -1))
{
idEncuesta = modelo.getValueAt(fila,0);
curso = (String) modelo.getValueAt(fila,13);
String aux = null;

if (curso == "2003/2004"){aux = "2003-2004";}
else if (curso == "2004/2005"){aux = "2004-2005";}
else if (curso == "2005/2006"){aux = "2005-2006";}

File fp = new File("ficheros/ficherostxt/"+curso+"/"+idEncuesta+".txt");
String ruta = fp.getAbsolutePath();
textoE.setText(ruta);
mostrarEncuesta();
}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Error al comparar cadenas

Publicado por angel (537 intervenciones) el 16/03/2007 09:00:23
En vez de :
if (curso == "2003/2004"){aux = "2003-2004";}
else if (curso == "2004/2005"){aux = "2004-2005";}
else if (curso == "2005/2006"){aux = "2005-2006";}

Usa:

if (curso.equals("2003/2004")){aux = "2003-2004";}
else if (curso.equals("2004/2005")){aux = "2004-2005";}
else if (curso.equals("2005/2006")){aux = "2005-2006";}

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error al comparar cadenas

Publicado por Gonzalo (180 intervenciones) el 16/03/2007 11:42:19
O mejor aún, no compares la cadena y simplemente sustituye la / por un -

aux = curso.replace('/','-');
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error al comparar cadenas

Publicado por Raúl (19 intervenciones) el 16/03/2007 14:31:50
Con el replace me funciona al pelo.Muchas gracias!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar