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 -
- Chronione słowo kluczowe w Javie
- JTextArea w Javie
- GridBagLayout w Javie
- Metody tablic w Javie