Ir ao conteúdo
  • Cadastre-se
Joanderson Pereira

Java Comparação de strings em Java

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá

O método nextLine capta a entrada inteira, incluído o caractere de nova linha.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×