Wprowadzenie do porównania ciągów w Javie

W Javie sekwencja znaków jest znana jako ciąg znaków. Jest niezmienny (nie można go zmienić po utworzeniu) i pomaga w wykonywaniu kilku operacji. Ponadto porównywanie ciągów jest częstym zadaniem programowania w Javie. Można to zrobić na kilka sposobów i zostanie to szczegółowo omówione w poniższych sekcjach.

Jak porównać ciąg znaków w Javie?

Jak już wspomniano, porównania ciągów można wykonać przy użyciu różnych metod. Oni są:

  • Korzystanie z metody equals ()
  • Korzystanie z metody CompareTo ()
  • Korzystanie z metody equalsIgnoreCase ()
  • Korzystanie z metody CompareToIgnoreCase ()

1. Metoda Equals ()

Metoda equals () porównuje dwa ciągi na podstawie zawartości ciągu. Jeśli ciągi znaków nie są w tym samym przypadku (tj. Wielkie lub małe litery), zostanie to uznane za nierównomierne. Poniżej znajduje się przykład metody equals ().

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");
)
)
)

Wynik:

Objaśnienie powyższego kodu

  • Tutaj dwa ciągi str1 i str2 są równe, ponieważ są z tego samego przypadku. (Obudowa wielbłąda).
  • Ponadto Str3 i Str4, str5 i str6 nie są równe.

2. Porównaj z metodą ()

W tej metodzie wartości są porównywane leksykograficznie i zwracane są wartości typu całkowitego. Wartość zależy od tego, czy pierwszy ciąg jest równy, mniejszy czy większy niż drugi ciąg.

Obecne są dwa ciągi str1 i str2 oraz

  • jeśli str1 == str2, to 0
  • jeśli str1> str2, to wartość + ve
  • jeśli str1 <str2, to wartość -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));
)
)

Wynik:

Objaśnienie powyższego kodu

  • Ponieważ dwa ciągi str1 i str2 są równe leksykograficznie, zwracane jest 0.
  • Jednocześnie str3 jest mniejszy niż str4, a str5 jest mniejszy niż str6 leksykograficznie. Tak więc zwracana jest wartość ujemna.

3. Metoda równej ignorowania przypadków

Korzystając z tej metody, dwa ciągi znaków zostaną porównane bez uwzględnienia, czy ciąg jest pisany wielkimi lub małymi literami.

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));
)
)

Wynik:

Objaśnienie powyższego kodu

  • Ponieważ stosowana jest metoda equalsIgnoreCase, str1 i str2 są równe, mimo że mają różne przypadki (małe i wielkie litery). Tak więc zwracana jest prawda.
  • W przypadku str3 i str4, str5 i str6 dwa ciągi są różne. Dlatego zwracana jest wartość false.

4. Porównaj z metodą Ignoruj ​​wielkość liter

Ta metoda jest podobna do metody CompareTo, w której łańcuchy są porównywane leksykograficznie. Różnica polega na tym, że porównanie nie będzie miało wpływu na to, czy ciągi będą pisane wielkimi lub małymi literami.

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));
)
)

Wynik:

Objaśnienie powyższego kodu

  • Tutaj wykonywana jest kombinacja funkcji CompareTo i Ignorecase. Ponieważ zarówno str1, jak i str2 są równe bez uwzględnienia przypadków, zwracane jest 0.
  • Podobnie zwracana jest wartość dodatnia, ponieważ str3 jest większa niż str4, a wartość ujemna jest zwracana, ponieważ str5 jest mniejsze niż str6.

Zobaczmy teraz wszystkie wyżej wymienione metody w jednym programie, aby lepiej zrozumieć porównanie ciągów znaków.

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));
)
)

Wynik:

Wniosek

Ciąg jest sekwencją znaków, a jego obiekty są niezmienne. Istnieją różne metody, takie jak equals, CompareTo itp., Aby porównać ciągi znaków. Wszystkie te metody są stosowane w oparciu o wymagania. Zostały one szczegółowo wyjaśnione w powyższej sekcji.

Polecane artykuły

Jest to przewodnik po porównywaniu ciągów w Javie. Tutaj omawiamy Wprowadzenie do porównywania ciągów w Javie, Jak porównywać ciąg w Javie wraz z kodami i wyjściami. Możesz także przejrzeć nasze inne sugerowane artykuły, aby dowiedzieć się więcej -

  1. Chronione słowo kluczowe w Javie
  2. JTextArea w Javie
  3. GridBagLayout w Javie
  4. Metody tablic w Javie