Comparacion de strings con equals

Estoy trabajando con un applet el cual llama constantemente a una clase que tiene un método que le devuelve un registro especifico de una tabla de la base de datos por ejemplo, si necesito el atributo recurso que esta el 3er registro de la tabla llamo al método de esta forma: p.recurso(3), el cual consulta a la BD y devuelve un String del recurso ubicado en la fila n°3 de la tabla... Bueno la cosa es que después cuando quiero comparar si el valor que devolvió es igual a otro String no me resulta.. Lo hago así:
import bd.Prueba;
public class aver {
public static void main(String[] args) {
Prueba p= new Prueba();
// TODO Auto-generated method stub
String valor="hola";
if(p.recurso(1).equals(valor))
System.out.println("Son Iguales");
}
}

De esta forma no me dice que son iguales, yo se que p.recurso(1) tiene que devolver el valor "hola", pero no resulta, debería mostrar "Son Iguales"... Ahora si hago la comparación así: if("hola". Equals("hola")) SI medice que son iguales, y si la hago así:
if(recurso(1).equals(recurso(1))) TB dice que son iguales, pero no de la forma
if(recurso(1).equals("hola")) A pesar que el metodo recurso(1) devuelve un String y que "hola" tb es un String....¿que podra ser???

1 respuesta

Respuesta
1
Lo que podrías hacer es imprimir el resultado que devuelve el método p.recurso(1) para saber si efectivamente es la cadena "hola". También checar que no tenga espacios antes o después de la cadena.
Hola, mira ya había hecho eso, y estoy segura que p.recurso(1) devuelve "hola", ya que lo imprimí con un applet e incluso con un System.out.println, pero aun así, no me quiere comparar el resultado de p.recurso con un strnig como "hola" a pesar que se que son iguales, si piensas que puede ser otra cosa me dices para veer si consigo algo.
Si las dos cadenas son iguales tiene que funcionar, lo más seguro es que haya alguna diferencia entre ellas. Intenta haciéndolo así:
String valor="hola";
String recurso=p.recurso(1);
System.out.println("valor ("+valor+")  =  Recurso ("+recurso+")");
if(valor.equals(recurso)){
System.out.println("Son iguales");
}
Los paréntesis en la impresión los puse para poder ver si tiene algún espacio antes o después de la cadena.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas