Error al comparar String con "y" o "Y"

Iniciado por rgomez9119, 6 Noviembre 2016, 18:43 PM

0 Miembros y 1 Visitante están viendo este tema.

rgomez9119

Hola,
Tengo esto:

case 5: // Borrar todas las mercancias existentes
lectura.nextLine(); // Borrando buffer
System.out.println("Seguro que desea borrar todo? (Y/N): ");
String opcionBorrar = lectura.nextLine();

if (opcionBorrar == "y" || opcionBorrar == "Y")
{
mercancias.clear();
System.out.println("....................BORRADO");
}
break;

}


Al escribir y o Y por el teclado, no funciona, es como si nunca entrara en el IF.

Estoy comparando mal el String?. Se hace de otra forma?.
Espero que me ayuden.

engel lex

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Konlex

Cita de: engel lex en  6 Noviembre 2016, 18:47 PM
esto que lenguaje es?
es java

intenta asi:

case 5: // Borrar todas las mercancias existentes
reader.nextLine(); // Borrando buffer
System.out.println("Seguro que desea borrar todo? (Y/N): ");
String opcionBorrar = reader.nextLine();

if (opcionBorrar == "y" || opcionBorrar == "Y")
{
mercancias.clear();
System.out.println("....................BORRADO");
}
break;

}

saludos!
La felicidad no es continua todos los dias de tu vida,sino que se presenta en momentos en que menos te los esperas.No pienses que eres infeliz,solo que no te das cuenta que ella se presenta en breves momentos de tu vida,y no la sabes valorar.

rgomez9119

no funciona.

Lo que pasa es que yo tengo esto para poder leer datos y capturarlos.

import java.util.Scanner;
Scanner lectura = new Scanner(System.in);


con esto hago esto:
System.out.println("Seguro que desea borrar todo? (Y/N): ");
String opcionBorrar = lectura.nextLine();

funciona perfecto, el problema esta al comparar el String, no se si con == es la forma correcta.

alguna otra idea?.

engel lex

si es Java, el tema debe ir en el subforo de Java, no es programación general!

movido
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

rgomez9119

Cita de: engel lex en  6 Noviembre 2016, 19:18 PM
si es Java, el tema debe ir en el subforo de Java, no es programación general!

movido

cierto, gracias bro

nota: he cambiado la forma de hacer la comparacion por esta:
if (opcionBorrar.equals("y") || opcionBorrar.equals("Y"))
ahora todo funciona bien, al parecer no se puede usar == al comparar un String con "letras".

Gracias a todos por tratar de ayudarme.

0xFer

Cita de: rgomez9119 en  6 Noviembre 2016, 19:22 PM
al parecer no se puede usar == al comparar un String con "letras".

El operador == sólo compara variables de tipo primitivo( char, int , double ....) Cualquier instancia de String es una variable de tipo objeto.
Código (java) [Seleccionar]
int getRandomNumber(){
    return 4; //chosen by fair dice roll
              //guaranteed to be random
}