3
respostas

Comparar valores com Array

Estou preenchendo os valores do Array pelo arrs, porém a fazer comparação ele não funciona

package br.com.bytebank.banco.test;

public class TesteArrayString {

    public static void main(String[] args) {

        System.out.println("Inicia aqui");

        String valida = "OI";
        String valor = args[0];

        if (valida == valor) {

            for (int i = 0; i < args.length; i++) {
                System.out.println(args[i]);
            }
        } else {
            System.out.println("Não validou");
        }

    }

}
3 respostas

Oi Andre, tudo bem?

Quando utilizamos o operador "==" com duas variáveis, como:

a == b;

ele compara os endereços de memória dos objetos para os quais essas variáveis estão apontando, e não o conteúdo em si.

Para comparar o conteúdo, os objetos tem um método chamado equals(), cuja ideia é comparar os valores, então no seu caso, no if, ficaria algo como:

  if (valida.equals(valor)) {

Se tiver ficado com alguma dúvida é só falar. :)

Abraço!

Fiz a mudança e funcionou.

public class TesteArrayString {

    public static void main(String[] args) {

        System.out.println("Inicia aqui");

        String valida = "OI";
        String valor = args[0];

        if (valida.equals(valor) ) {

            for (int i = 0; i < args.length; i++) {
                System.out.println(args[i]);
            }
        } else {
            System.out.println("Não validou");
        }

    }

}

Oi Andre!

Só te mandando a aula onde tem falando mais sobre o equals():

https://cursos.alura.com.br/course/java-util-lambdas/task/37823

Qualquer dúvida é só avisar. Abraço!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software