Introducere privind compararea șirurilor în Java

În Java, o secvență de caractere este cunoscută sub numele de șir. Este imuabil (nu poate fi modificat odată ce a fost creat) și ajută la efectuarea mai multor operații. De asemenea, o Comparație a șirurilor este o sarcină de programare comună în Java. Poate fi efectuat folosind mai multe moduri și va fi discutat în secțiunile următoare în detaliu.

Cum se compară șirul în Java?

După cum sa discutat deja, compararea șirurilor se poate face folosind diferite metode. Sunt:

  • Folosind metoda egal ()
  • Folosind metoda compareTo ()
  • Utilizarea metodei equalsIgnoreCase ()
  • Folosind metoda compareToIgnoreCase ()

1. Metoda egal ()

Metoda egal () compară două șiruri pe baza conținutului șirului. Dacă șirurile nu sunt în același caz (adică cu majuscule sau minuscule), se va considera că nu este egal. Mai jos este un exemplu al metodei egal ().

Program

public class StringComparisonExamples (
public static void main(String() args) (
String str1 = "Balloon";
String str2 = "Balloon";
//string comparison using equals method
if (str1.equals(str2)) (
System.out.println("Both str1 : " + str1 + " and str2 : "+ str2 +" are equal");
)
else
(
System.out.println("Both str1 : " + str1 + " and str2 : "+ str2 +" are not equal");
)
String str3 = "Happy";
String str4 = "hai";
if (str3.equals(str4)) (
System.out.println("Both str3 : " + str3 + " and str4 : "+ str4 +" are equal");
)
else
(
System.out.println("Both str3 : " + str3 + " and str4 : "+ str4 +" are not equal");
)
String str5 = "Happy";
String str6 = "hard";
if (str5.equals(str6)) (
System.out.println("Both str5 : " + str5 + "and str6 : "+ str6 +" are equal");
)
else
(
System.out.println("Both str5 : " + str5 + " and str6 : "+ str6 +" are not equal");
)
)
)

ieşire:

Explicarea codului de mai sus

  • Aici, două șiruri str1 și str2 sunt egale, deoarece sunt de același caz. (Cazul Camel).
  • De asemenea, Str3 și Str4, str5 și str6 nu sunt egale.

2. Comparați cu () Metoda

În această metodă, valorile sunt comparate lexicografic și returnează o valoare de tip întreg. Valoarea se bazează pe dacă prima șir este egală cu, mai mică sau mai mare decât a 2 -a șir.

Două șiruri str1 și str2 sunt prezente și

  • dacă str1 == str2, atunci 0
  • dacă str1> str2, atunci valoarea + ve
  • dacă str1 <str2, atunci valoarea -ve

Program

//Java program to demonstrate compareTo method
public class StringComparisonExamples (
public static void main(String() args) (
String str1 = "Balloon";
String str2 = "Balloon";
String str3 = "Happy";
String str4 = "hai";
//string comparison using compareTo method
System.out.println(str1.compareTo(str2));
System.out.println(str3.compareTo(str4));
String str5 = "Happy";
String str6 = "Hardest one";
System.out.println(str5.compareTo(str6));
)
)

ieşire:

Explicarea codului de mai sus

  • Deoarece două șiruri str1 și str2 sunt lexicografice egale, se returnează 0.
  • În același timp, str3 este mai mic decât str4 și str5 este mai mic decât str6 lexicografic. Deci, o valoare negativă este returnată.

3. Metoda cazului egal ignoră

Folosind această metodă, două șiruri vor fi comparate fără a lua în considerare dacă șirul este cu majuscule sau minuscule.

Program

//Java program to demonstrate equalsIgnoreCase method
public class StringComparisonExamples (
public static void main(String() args) (
String str1 = "Balloon";
String str2 = "balloon";
//string comparison using equalsIgnoreCase method
System.out.println(str1.equalsIgnoreCase(str2));
String str3 = "Happy";
String str4 = "hai";
System.out.println(str3.equalsIgnoreCase(str4));
String str5 = "Happy";
String str6 = "hard";
System.out.println(str5.equalsIgnoreCase(str6));
)
)

ieşire:

Explicarea codului de mai sus

  • Deoarece se folosește metoda equalsIgnoreCase, str1 și str2 sunt egale, chiar dacă sunt de cazuri diferite (minuscule și majuscule). Deci, True este returnat.
  • În cazul str3 și str4, str5 și str6, două șiruri sunt diferite. Prin urmare, falsul este returnat.

4. Comparați cu Metoda cazului ignoră

Această metodă este similară cu metoda compareTo în care șirurile sunt comparate lexicografic. Diferența este că comparația nu va fi afectată dacă șirurile sunt cu majuscule sau minuscule.

Program

//Java program to demonstrate compareToIgnoreCase method
public class StringComparisonExamples (
public static void main(String() args) (
String str1 = "Balloon";
String str2 = "balloon";
//string comparison using compareToIgnoreCase method
System.out.println(str1.compareToIgnoreCase(str2));
String str3 = "Happy";
String str4 = "hai";
System.out.println(str3.compareToIgnoreCase(str4));
String str5 = "Happy";
String str6 = "Hard";
System.out.println(str5.compareToIgnoreCase(str6));
)
)

ieşire:

Explicarea codului de mai sus

  • Aici, se face o combinație de compareTo și Ignorecase. Deoarece atât str1 cât și str2 sunt egale fără a ține cont de cazuri, 0 este returnat.
  • În mod similar, o valoare pozitivă este returnată, deoarece str3 este mai mare decât str4 și o valoare negativă este returnată, deoarece str5 este mai mică decât str6.

Acum, să vedem toate metodele menționate mai sus într-un singur program, astfel încât să se obțină o mai bună înțelegere cu privire la compararea șirurilor.

Program

//Java program to demonstrate different methods for string comparison
public class StringComparisonExamples (
public static void main(String() args) (
String str1 = "Balloon";
String str2 = "Balloon";
System.out.println("Comparison of str1 : " + str1 + " and str2 : " + str2);
System.out.println("Using equals method ");
//string comparison using equals method
if (str1.equals(str2)) (
System.out.println("Both are equal");
)
else
(
System.out.println("Both are not equal");
)
System.out.println("Using compareTo method ");
//string comparison using compareTo method
System.out.println(str1.compareTo(str2));
System.out.println("Using equalsIgnoreCase method ");
//string comparison using equalsIgnoreCase method
System.out.println(str1.equalsIgnoreCase(str2));
System.out.println("Using compareToIgnoreCase method ");
//string comparison using compareToIgnoreCase method
System.out.println(str1.compareToIgnoreCase(str2));
String str3 = "Happy";
String str4 = "hai";
System.out.println("\nComparison of str3 : " + str3 + " and str4 : " + str4);
System.out.println("Using equals method ");
if (str3.equals(str4)) (
System.out.println("Both are equal");
)
else
(
System.out.println("Both are not equal");
)
System.out.println("Using compareTo method ");
System.out.println(str3.compareTo(str4));
System.out.println("Using equalsIgnoreCase method ");
System.out.println(str3.equalsIgnoreCase(str4));
System.out.println("Using compareToIgnoreCase method ");
System.out.println(str3.compareToIgnoreCase(str4));
String str5 = "Happy";
String str6 = "hard";
System.out.println("\nComparison of str5 : " + str5 + " and str6 : " + str6);
System.out.println("Using equals method ");
if (str5.equals(str6)) (
System.out.println("Both are equal");
)
else
(
System.out.println("Both are not equal");
)
System.out.println("Using compareTo method ");
System.out.println(str5.compareTo(str6));
System.out.println("Using equalsIgnoreCase method ");
System.out.println(str5.equalsIgnoreCase(str6));
System.out.println("Using compareToIgnoreCase method ");
System.out.println(str5.compareToIgnoreCase(str6));
)
)

ieşire:

Concluzie

Un șir este o secvență de caractere și obiectele sale sunt imuabile. Există diferite metode, cum ar fi egal, compareTo, etc., disponibile pentru a compara șirurile. Toate aceste metode sunt utilizate pe baza cerințelor. Acestea sunt explicate în detaliu în secțiunea de mai sus.

Articole recomandate

Acesta este un ghid despre Compararea șirurilor în Java. Aici vom discuta Introducerea Comparației șirurilor în Java, Cum să comparăm șirul în Java împreună cu codurile și ieșirile. Puteți parcurge și alte articole sugerate pentru a afla mai multe -

  1. Cuvânt cheie protejat în Java
  2. JTextArea în Java
  3. GridBagLayout în Java
  4. Metode de Array în Java