Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Java => Mensaje iniciado por: rgomez9119 en 6 Noviembre 2016, 18:43 PM

Título: Error al comparar String con "y" o "Y"
Publicado por: rgomez9119 en 6 Noviembre 2016, 18:43 PM
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.
Título: Re: Error al comparar String con "y" o "Y"
Publicado por: engel lex en 6 Noviembre 2016, 18:47 PM
esto que lenguaje es?
Título: Re: Error al comparar String con "y" o "Y"
Publicado por: Konlex en 6 Noviembre 2016, 19:13 PM
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!
Título: Re: Error al comparar String con "y" o "Y"
Publicado por: rgomez9119 en 6 Noviembre 2016, 19:17 PM
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?.
Título: Re: Error al comparar String con "y" o "Y"
Publicado por: 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
Título: Re: Error al comparar String con "y" o "Y"
Publicado por: rgomez9119 en 6 Noviembre 2016, 19:22 PM
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.
Título: Re: Error al comparar String con "y" o "Y"
Publicado por: 0xFer en 6 Noviembre 2016, 22:24 PM
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.