HOWTO · Java

Compare String com a instrução Java if

Comparando Strings por meio de instruções if em Java.

Nesta página

Neste guia, vamos falar sobre a comparação de strings de instrução if em Java. Geralmente, existem três maneiras de comparar duas strings. Você precisa entender o básico dessas operações e descobrir o que está comparando (conteúdo, referência ou diferença de string). Vamos dar uma olhada mais profunda nisso.

Compare String com a instrução Java if usando o operador ==

Quando comparamos duas strings por meio da instrução if usando o operador ==, comparamos o número de referência dessas strings, mas você perceberá que funcionará da mesma forma que comparar o conteúdo. Se houver duas strings com o mesmo conteúdo, ele as mostrará como iguais. Porque? Porque o compilador de Java é maduro o suficiente para armazenar as duas strings com o mesmo conteúdo na mesma memória.

Compare String com a instrução Java if usando a função equal()

Por meio da função equal(), podemos comparar o conteúdo das duas strings. Ele vai ver se o conteúdo é semelhante. É sensível a maiúsculas e minúsculas, mas você também pode ignorar a diferenciação de maiúsculas e minúsculas usando a função equalsIgnoreCase().

Compare String com a instrução Java if usando a função compareTo()

Nesta função, obtemos a diferença entre duas strings. Nós os comparamos lexicograficamente com base no valor Unicode de cada caractere. Você obterá um valor 0 se ambas as strings forem iguais, e você obterá menos do que o valor 0 se a string for menor que a outra string e vice-versa.

Dê uma olhada no seguinte código autoexplicativo.

public class Main {
  public static void main(String[] args) {
    String str1 = "jeff";
    String str2 = "jeff";
    String str3 = new String("jeff"); // to declare
    String str10 = new String("jeff");
    System.out.println("-----------------Using == Operator ----------------");
    // using == opreater use for Refrence Comapring instead of content comparison.
    if (str1
        == str2) { // equal and if Conditon True because both have same Refrence Memory address.
      System.out.println("Str1 And Str2 Equal");
    }
    if (str1
        == str3) { // Not Equal If Condition False Because == opreater compares objects refrence.
      System.out.println("Str1 and Str3 are equals");
    }
    if (str10
        == str3) { // Not Equal If Condition False Because == opreater compares objects refrence.
      System.out.println("Str10 and Str3 are equals");
    }

    System.out.println("-----------------Using .equal Method----------------");
    // Using .equals Method. for String Content Comparison.

    if (str1.equals(str2)) { // equal and if Conditon True because both have same string
      System.out.println("Str1 And Str2 Equal");
    }
    if (str1.equals(str3)) { // Equal If Condition true String have same Content.
      System.out.println("Str1 and Str3 are equals");
    }
    // compare two strings diffrence
    System.out.println("-----------------Using Compare Method----------------");
    // first string.toCompare(String2)

    System.out.println(str1.compareTo(str2));
  }
}

Resultado:

Output:
-----------------Using == Operator ----------------
Str1 And Str2 Equal
-----------------Using .equal Method----------------
Str1 And Str2 Equal
Str1 and Str3 are equals
-----------------Using Compare Method----------------
0