Problema con if de comparación de Strings

Iniciado por Runforyourlife, 26 Noviembre 2016, 14:34 PM

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

Runforyourlife

Comparo dos Strings que son iguales y me sale error ;(

Al ejecutarlo:
   Calculadora
--------------------------
¿Qué operación desea realizar?
Suma
SUMA (Esta línea la he insertado yo al ejecutar)
Error



import java.util.Scanner;

public class MainClass {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);

System.out.println("\tCalculadora");
System.out.println("--------------------------");

System.out.println("¿Qué operación desea realizar?");
System.out.println("Suma");

String operacion = scan.nextLine();

if(operacion.toLowerCase() == "suma"){
System.out.println("Introduce los números que quieres sumar");
System.out.println("Número 1: ");
double numero1 = scan.nextDouble();
System.out.println("Número 2: ");
double numero2 = scan.nextDouble();

Suma suma = new Suma(numero1, numero2);

System.out.println(suma.getSuma());

}else{
System.out.println("Error");
}

}
}


Creo que para resolver esto no se necesita la otra clase que he creado, pero si la necesitáis os la pasaré ;)

Saludos :D

0xFer

Para compara objetos de tipo String debes usar el método equals:

Código (java) [Seleccionar]
if(operacion.toLowerCase().equals("suma")){... }

el operador == es para comparar variables de tipo primitivo; int,char,double,float...
Código (java) [Seleccionar]
int getRandomNumber(){
    return 4; //chosen by fair dice roll
              //guaranteed to be random
}

Runforyourlife

Cita de: 0xFer en 26 Noviembre 2016, 22:01 PM
Para compara objetos de tipo String debes usar el método equals:

Código (java) [Seleccionar]
if(operacion.toLowerCase().equals("suma")){... }

el operador == es para comparar variables de tipo primitivo; int,char,double,float...
¡Muchas gracias!  ;D