Ir ao conteúdo

Java Comparação de strings em Java


Ir à solução Resolvido por devair1010,

Posts recomendados

Postado

Sou iniciante em Java, pretendo fazer um programa capaz de efetuar a adição/subtração/multiplicação/divisão de dois números fornecidos pelo usuário conforme a operação desejada.

Na parte em que o usuário digita o operador, optei por guardá-lo em uma string para tentar validar com "if".

// Quest1.java exibe um número que o usuário digitar na tela
import java.util.Scanner;

public class Quest2 {

    public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            Scanner scanner2 = new Scanner(System.in);
            Scanner scanner3 = new Scanner (System.in);
        
        //Entrada
                    
        System.out.println("Seja Bem vindo ao Java Calculator");
        System.out.println("Digite um número");
        double n1 = scanner.nextDouble();
        System.out.println("Digite outro número");
        double n2 = scanner2.nextDouble();
                
        
        //Processamento
        
        double r1 = n1 + n2;
        double r2 = n1 - n2;
        double r3 = n1 * n2;
        double r4 = n1 / n2;
        
        System.out.println("Agora digite um operador correspondente a operação desejada: " +
        "Adição +, Subtração -, Multiplicação *, Divisão /");
        
        String op1 = scanner3.nextLine();
        

    
    //Saída
    if ( op1 == "+")
        System.out.println("A soma deles é :" + r1 );
        
    if (op1 == "/")
        System.out.println("O quociente deles é :" + r4 );
    
    if (op1 == "*")
        System.out.println("O produto deles é :" + r3 );
    
    if (op1 == "-")
        System.out.println("A subtração deles é :" + r2 );
    else {
        System.out.println("Digite um operador válido!");
    }

 

Porém na saída apenas else é exibida, o programa não foi capaz de reconhecer que a string recebida estava igual.

Alguém alma caridosa pode me socorrer?

  • Curtir 1
  • Solução
Postado

@Joanderson Pereira     melhor usar uma função do java para comparar string , e pode ser essa   variavel_string . equalsIgnoreCase("outra_string")  , então seu código pode ser assim  :

package quest2;
import java.util.Scanner;
public class Quest2 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Scanner scanner2 = new Scanner(System.in);
        Scanner scanner3 = new Scanner (System.in);
        //Entrada
                    
        System.out.println("Seja Bem vindo ao Java Calculator");
        System.out.println("Digite um número");
        double n1 = scanner.nextDouble();
        System.out.println("Digite outro número");
        double n2 = scanner2.nextDouble();
        
        //Processamento
        
        double r1 = n1 + n2;
        double r2 = n1 - n2;
        double r3 = n1 * n2;
        double r4 = n1 / n2;
        
        System.out.println("Agora digite um operador correspondente a operação desejada: " +
        "Adição +, Subtração -, Multiplicação *, Divisão /");

        String op1 = scanner3.nextLine();
        //System.out.println("valor de op1= "+op1);
    
        //Saída
        //if( op1.charAt(0) == '+') este aqui também funciona desse jeito 
        if(op1.equalsIgnoreCase("+"))
            System.out.println("A soma deles é :" + r1 );
        else
            if (op1.equalsIgnoreCase("/"))
                System.out.println("O quociente deles é :" + r4 );
            else
                if (op1.equalsIgnoreCase("*"))
                    System.out.println("O produto deles é :" + r3 );
                else
                    if (op1.equalsIgnoreCase("-"))
                        System.out.println("A subtração deles é :" + r2 );
                    else {
                        System.out.println("Digite um operador válido!");
                    }
    }
}

 

  • Curtir 2

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!