Ciąg znaków to ciąg znaków. W Javie obiekty String są niezmienne, co oznacza, że są stałe i nie można ich zmienić po utworzeniu.
Java odczytuje plik CSV
Metody porównywania ciągów w Javie
Poniżej znajduje się 5 sposobów porównania dwóch Smyczki w Javie:
- Korzystanie z funkcji zdefiniowanej przez użytkownika
- Korzystanie z metody String.equals()
- Korzystanie z metody String.equalsIgnoreCase()
- Korzystanie z metody Objects.equals()
- Korzystanie z metody String.compareTo()
1. Korzystanie z funkcji zdefiniowanej przez użytkownika:
Zdefiniuj funkcję porównującą wartości przy spełnieniu następujących warunków:
- if (ciąg1> ciąg2) zwraca a wartość dodatnia .
- jeśli oba ciągi są równe leksykograficznie, tj. (ciąg1 == ciąg2), zwraca 0 .
- jeśli (ciąg1
ujemna wartość .
2. Używanie String.equals() :
W Javie metoda string równa się() porównuje dwa podane ciągi na podstawie danych/zawartości ciągu. Jeśli cała zawartość obu ciągów jest taka sama, zwraca wartość true. Jeśli którykolwiek znak nie pasuje, zwraca wartość false.
Składnia:
str1.equals(str2);>
Tutaj str1 i str2 są ciągami, które mają zostać porównane.
Przykłady:
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:
Jawa
// 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)); } }>
Wyjście
Comparing Geeksforgeeks and Practice : false Comparing Geeks and Geeks : true Comparing Geeks and geeks : false Comparing Geeksforgeeks and Geeks : false>
3. Używanie String.equalsIgnoreCase() :
The String.equalsIgnoreCase() Metoda porównuje dwa ciągi znaków niezależnie od wielkości liter (mała lub duża) ciągu. Ta metoda zwraca wartość true, jeśli argument nie ma wartości null, a zawartość obu ciągów jest taka sama, ignorując wielkość liter, w przeciwnym razie wartość false. Składnia:
str2.equalsIgnoreCase(str1);>
Tutaj str1 i str2 są ciągami, które mają zostać porównane.
Przykłady:
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:
Jawa // 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)); } }>
Wyjście
Comparing Geeksforgeeks and Practice : false Comparing Geeks and Geeks : true Comparing Geeks and geeks : true Comparing Geeksforgeeks and Geeks : false>
4. Używanie Objects.equals() :
Obiekt.equals(Obiekt a, Obiekt b) metoda zwraca wartość true, jeśli argumenty są sobie równe, lub false w przeciwnym razie. W rezultacie, jeśli oba argumenty mają wartość null, zwracana jest wartość true, a jeśli dokładnie jeden argument ma wartość null, zwracana jest wartość false. W przeciwnym razie równość jest określana przy użyciu metody równości() pierwszego argumentu. Składnia:
public static boolean equals(Object a, Object b)>
Tutaj a i b są obiektami łańcuchowymi, które mają zostać porównane.
Przykłady:
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:
Jawa // 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)); } }>
Wyjście
Comparing Geeksforgeeks and Geeks : false Comparing Geeks and Geeks : true Comparing Geeksforgeeks and null : false Comparing null and null : true>
5. Używanie metody String.compareTo() do porównywania dwóch ciągów znaków
Składnia ciągu CompareTo()
int str1.compareTo(String str2)>
Pracujący: Porównuje i zwraca następujące wartości w następujący sposób:
- if (ciąg1> ciąg2) zwraca a wartość dodatnia .
- jeśli oba ciągi są równe leksykograficznie, tj. (ciąg1 == ciąg2), zwraca 0 .
- jeśli (ciąg1
ujemna wartość .
Poniżej implementacja powyższej metody
Jawa // 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); } }>
Wyjście
Geeksforgeeks Geeks : Not Equal Geeks Geeks : Equal Geeksforgeeks : Not Equal : Equal>
Notatka: Nie można przekazać łańcucha NULL jako argumentu do metody CompareTo().
Aby dowiedzieć się więcej na ten temat, zob String.compareTo() artykuł.
Dlaczego nie użyć == do porównania ciągów znaków?
Ogólnie rzecz biorąc, jedno i drugie równa się() I == operatory w Javie służą do porównywania obiektów w celu sprawdzenia równości, ale oto niektóre różnice między nimi:
- Główna różnica między metodą .equals() a operatorem == polega na tym, że jedna jest metodą, a druga operatorem.
- Do porównania referencji można użyć operatorów == (porównanie adresów) oraz metoda .equals() dla porównanie treści .
- Zarówno s1, jak i s2 odnoszą się do różnych obiektów.
- Gdy do porównania s1 i s2 zostanie użyty operator ==, wynik będzie fałszywy, ponieważ oba mają różne adresy w pamięci.
- Używając równości, wynik jest prawdziwy, ponieważ porównuje tylko wartości podane w s1 i s2.
Aby dowiedzieć się więcej na ten temat, zob porównanie ciągów artykuł.