logo

Primerjajte dva niza v Javi

Niz je zaporedje znakov. V Javi so objekti niza nespremenljivi, kar pomeni, da so stalni in jih ni mogoče spremeniti, ko so ustvarjeni.

linux zaženi cmd

Metode za primerjavo nizov v Javi

Spodaj je 5 načinov za primerjavo dveh Strune v Javi:



  1. Uporaba uporabniško definirane funkcije
  2. Uporaba String.equals()
  3. Uporaba String.equalsIgnoreCase()
  4. Uporaba Objects.equals()
  5. Uporaba String.compareTo()

1. Uporaba uporabniško določene funkcije:

Definirajte funkcijo za primerjavo vrednosti z naslednjimi pogoji:

  1. če (niz1> niz2) vrne a pozitivna vrednost .
  2. če sta oba niza leksikografsko enaka, tj. (niz1 == niz2), vrne 0 .
  3. če (niz1 negativna vrednost .

2. Uporaba String.equals() :

V Javi metoda string equals() primerja dva podana niza na podlagi podatkov/vsebine niza. Če je vsa vsebina obeh nizov enaka, vrne true. Če se kateri koli znak ne ujema, potem vrne false.

Sintaksa:



str1.equals(str2);>

Tukaj sta str1 in str2 oba niza, ki ju je treba primerjati.

Primeri:

  Input 1:   techcodeview.com   Input 2:   Practice   Output:   false   Input 1:   Geeks   Input 2:   Geeks   Output:   true   Input 1:   geeks   Input 2:   Geeks   Output:   false>

Program:



Java
// Java program to Compare two strings // lexicographically public class GFG {  public static void main(String args[])  {  String string1 = new String('Geeksforgeeks');  String string2 = new String('Practice');  String string3 = new String('Geeks');  String string4 = new String('Geeks');  String string5 = new String('geeks');  // Comparing for String 1 != String 2  System.out.println('Comparing ' + string1 + ' and '  + string2 + ' : '  + string1.equals(string2));  // Comparing for String 3 = String 4  System.out.println('Comparing ' + string3 + ' and '  + string4 + ' : '  + string3.equals(string4));  // Comparing for String 4 != String 5  System.out.println('Comparing ' + string4 + ' and '  + string5 + ' : '  + string4.equals(string5));  // Comparing for String 1 != String 4  System.out.println('Comparing ' + string1 + ' and '  + string4 + ' : '  + string1.equals(string4));  } }>

Izhod
Comparing Geeksforgeeks and Practice : false Comparing Geeks and Geeks : true Comparing Geeks and geeks : false Comparing Geeksforgeeks and Geeks : false>

3. Uporaba String.equalsIgnoreCase() :

The String.equalsIgnoreCase() Metoda primerja dva niza ne glede na velikost črk (malo ali zgornjo) niza. Ta metoda vrne true, če argument ni nič in je vsebina obeh nizov enaka, pri čemer se ne upoštevajo velike in male črke, drugače pa je false. Sintaksa:

str2.equalsIgnoreCase(str1);>

Tukaj sta str1 in str2 niza, ki ju je treba primerjati.

Primeri:

  Input 1:   techcodeview.com   Input 2:   Practice   Output:   false   Input 1:   Geeks   Input 2:   Geeks   Output:   true   Input 1:   geeks   Input 2:   Geeks   Output:   true>

Program:

Java
// Java program to Compare two strings // lexicographically public class GFG {  public static void main(String args[])  {  String string1 = new String('Geeksforgeeks');  String string2 = new String('Practice');  String string3 = new String('Geeks');  String string4 = new String('Geeks');  String string5 = new String('geeks');  // Comparing for String 1 != String 2  System.out.println(  'Comparing ' + string1 + ' and ' + string2  + ' : ' + string1.equalsIgnoreCase(string2));  // Comparing for String 3 = String 4  System.out.println(  'Comparing ' + string3 + ' and ' + string4  + ' : ' + string3.equalsIgnoreCase(string4));  // Comparing for String 4 = String 5  System.out.println(  'Comparing ' + string4 + ' and ' + string5  + ' : ' + string4.equalsIgnoreCase(string5));  // Comparing for String 1 != String 4  System.out.println(  'Comparing ' + string1 + ' and ' + string4  + ' : ' + string1.equalsIgnoreCase(string4));  } }>

Izhod
Comparing Geeksforgeeks and Practice : false Comparing Geeks and Geeks : true Comparing Geeks and geeks : true Comparing Geeksforgeeks and Geeks : false>

4. Uporaba Objects.equals() :

Object.equals (predmet a, predmet b) metoda vrne true, če so argumenti med seboj enaki, v nasprotnem primeru pa false. Posledično, če sta oba argumenta ničelna, je vrnjen true in če je natanko en argument ničelen, je vrnjen false. V nasprotnem primeru se enakost določi z uporabo metode equals() prvega argumenta. Sintaksa:

public static boolean equals(Object a, Object b)>

Tu sta a in b oba predmeta niza, ki ju je treba primerjati.

Primeri:

  Input 1:   techcodeview.com   Input 2:   Practice   Output:   false   Input 1:   Geeks   Input 2:   Geeks   Output:   true   Input 1:   null   Input 2:   null   Output:   true>

Program:

Java
// Java program to Compare two strings // lexicographically import java.util.*; public class GFG {  public static void main(String args[])  {  String string1 = new String('Geeksforgeeks');  String string2 = new String('Geeks');  String string3 = new String('Geeks');  String string4 = null;  String string5 = null;  // Comparing for String 1 != String 2  System.out.println(  'Comparing ' + string1 + ' and ' + string2  + ' : ' + Objects.equals(string1, string2));  // Comparing for String 2 = String 3  System.out.println(  'Comparing ' + string2 + ' and ' + string3  + ' : ' + Objects.equals(string2, string3));  // Comparing for String 1 != String 4  System.out.println(  'Comparing ' + string1 + ' and ' + string4  + ' : ' + Objects.equals(string1, string4));  // Comparing for String 4 = String 5  System.out.println(  'Comparing ' + string4 + ' and ' + string5  + ' : ' + Objects.equals(string4, string5));  } }>

Izhod
Comparing Geeksforgeeks and Geeks : false Comparing Geeks and Geeks : true Comparing Geeksforgeeks and null : false Comparing null and null : true>

5. Uporaba String.compareTo() za primerjavo dveh nizov

Sintaksa niza compareTo()

int str1.compareTo(String str2)>

Delo: Primerja in vrne naslednje vrednosti, kot sledi:

  1. če (niz1> niz2) vrne a pozitivna vrednost .
  2. če sta oba niza leksikografsko enaka, tj. (niz1 == niz2), vrne 0 .
  3. če (niz1 negativna vrednost .

Spodaj je izvedba zgornje metode

Java
// Java program to Compare two strings // Using String.compareTo()  import java.util.*; // Diver Class public class GFG {  public static void check(String string1, String string2)  {  if (string1.compareTo(string2)!=0) {  System.out.println(string1 + ' ' + string2  + ' : Not Equal');  }  else {  System.out.println(string1 + ' ' + string2  + ' : Equal');  }  }  // main function  public static void main(String args[])  {  String string1 = new String('Geeksforgeeks');  String string2 = new String('Geeks');  String string3 = new String('Geeks');  String string4 = ' ';  String string5 = ' ';  // Comparing for String 1 != String 2  check(string1, string2);  // Comparing for String 2 = String 3  check(string2, string3);  // Comparing for String 1 != String 4  check(string1, string4);  // Comparing for String 4 = String 5  check(string4, string5);  } }>

Izhod
Geeksforgeeks Geeks : Not Equal Geeks Geeks : Equal Geeksforgeeks : Not Equal : Equal>

Opomba: Niza NULL ni mogoče posredovati kot argumenta metodi compareTo().

Če želite izvedeti več o temi, glejte String.compareTo() Članek.

Zakaj ne bi uporabili == za primerjavo nizov?

Na splošno oboje enako () in == Operatorji v Javi se uporabljajo za primerjavo objektov za preverjanje enakosti, vendar je tukaj nekaj razlik med obema:

  1. Glavna razlika med metodo .equals() in operatorjem == je v tem, da je ena metoda, druga pa operator.
  2. Za referenčno primerjavo lahko uporabimo operatorje == (primerjava naslovov) in metoda .equals() za vsebinska primerjava .
    • Tako s1 kot s2 se nanašata na različne predmete.
    • Če za primerjavo s1 in s2 uporabimo operator ==, je rezultat napačen, saj imata oba različna naslova v pomnilniku.
    • Če uporabimo enako, je rezultat resničen, ker primerja le vrednosti, podane v s1 in s2.

Če želite izvedeti več o temi, glejte primerjava nizov Članek.