java string compareto method with programming examples
În acest tutorial, vom afla despre metoda Java String compareTo () și vom vedea cum și când să folosim compareTo în Java Împreună cu sintaxa și exemplele:
Veți înțelege cum să manipulați Java String cu ajutorul metodei compareTo () Java. Tipurile de ieșire pe care le vom obține prin metoda Java compareTo () vor fi, de asemenea, tratate în acest tutorial.
După ce citiți acest tutorial, veți putea cu siguranță să înțelegeți și să scrieți programele Java String care necesită metoda .compareTo () pentru manipularea șirurilor.
=> Consultați aici Ghidul perfect de instruire Java.
Ce veți învăța:
Java String compareTo () Method
Metoda Java String compareTo () este utilizată pentru a verifica dacă două șiruri sunt identice sau nu. După cum sugerează și numele, compară două șiruri date și află dacă sunt aceleași sau care dintre ele este mai mare.
Tipul returnat al metodei Java compareTo () este un număr întreg și sintaxa este dată ca:
int compareTo(String str)
În sintaxa de mai sus, str este o variabilă String care este comparată cu Stringul invocator.
De exemplu: String1.compareTo (String2);
O altă variantă a Java compareTo () este
int compareTo(Object obj)
În sintaxa de mai sus, vom compara un șir cu un obiect obiect.
De exemplu ,String1.compareTo („Acesta este un obiect șir”);
Aici „Acesta este un obiect șir” este un argument pe care îl trecem la compareTo () și îl compară cu String1.
Java compareTo () Metode Tipuri de ieșire
Ieșirea are trei tipuri care se bazează pe valoarea de ieșire.
Mai jos este tabelul care explică toate cele trei tipuri de valori de ieșire.
compareTo () Valoare de ieșire | Descriere |
---|---|
Zero | Două corzi sunt egale. |
Mai mare decât zero | Stringul invocator este mai mare decât str. |
Mai puțin decât zero | Stringul invocator este mai mic decât str. |
Să înțelegem aceste trei variante în detaliu cu ajutorul unui exemplu.
Un exemplu de programare
Iată un exemplu de metodă Java compareTo (). Comparația se bazează pe diferența dintre valoarea ASCII a caracterelor. În termeni generali, un șir este mai mic decât celălalt dacă apare înainte de celălalt din dicționar.
package codes; import java.lang.String; public class CompareTo { public static void main(String() args) { String str1 = 'Grand Theft Auto'; String str2 = 'Assassin Creed'; String str3 = 'Call of Duty'; String str4 = 'Need for Speed'; String str5 = 'Grand Theft Auto'; System.out.println(str1.compareTo(str2)); // Since 'A' is greater than 'G' by 6 characters, so it will return 6 System.out.println(str2.compareTo(str3)); // Since 'C' is smaller than 'A' by 2 characters, so it will return -2 System.out.println(str3.compareTo(str4)); //Since 'N' is smaller than 'C' by 11 characters, so it will return -11 System.out.println(str4.compareTo(str1)); //Since 'G' is Greater than 'N' by 7 characters, so it will return 7 System.out.println(str1.compareTo(str5)); //Strings are equal } }
Ieșire:
Explicația exemplului
În exemplul de mai sus, am luat cinci șiruri de intrare și am efectuat o comparație de bază între ele folosind metoda .compareTo () Java. În prima comparație, avem „A” mai mare decât „G” cu 6 caractere în seria alfabetului, deci returnează +6. În cea de-a doua comparație, avem „C” mai mic decât „A” cu 2 caractere, deci returnează -2.
În ultima comparație (între str1 și str5), deoarece ambele șiruri sunt egale, returnează 0.
Diverse scenarii
Să înțelegem metoda .compareTo () în detaliu. Aici vom încerca să analizăm diferite scenarii și rezultatul fiecărui caz.
Scenariul 1: Luați în considerare următoarele două șiruri. Le vom compara și vom vedea rezultatul.
String str1 = „Testare software”;
String str2 = „Ajutor pentru testarea software-ului”;
Care va fi rezultatul str1.compareTo (str2)?
Răspuns: Deoarece str2 conține 5 caractere (un spațiu + patru caractere) mai mult decât primul șir. Ieșirea ar trebui să fie -5. În mod similar, atunci când comparăm str2 cu str1, ieșirea ar trebui să fie +5.
package codes; import java.lang.String; public class CompareTo { public static void main(String() args) { String str1 = 'Software Testing'; String str2 = 'Software Testing Help'; System.out.println(str1.compareTo(str2)); // Since str2 contains 5 characters more than the str1, output should be -5 System.out.println(str2.compareTo(str1)); // Since str2 contains 5 characters less than the str1, output should be +5 } }
Ieșire:
Scenariul 2: Luați în considerare următoarele două șiruri. Le vom compara și vom vedea rezultatul.
String str1 = „”;
String str2 = ”“;
cel mai simplu mod de a converti YouTube în mp3
Care va fi rezultatul str1.compareTo (str2)?
Răspuns: Deoarece str2 conține un caracter (spațiu) mai mult decât str1, ar trebui să dea ieșirea ca -1.
package codes; import java.lang.String; public class CompareTo { public static void main(String() args) { String str1 = ''; String str2 = ' '; System.out.println(str1.compareTo(str2)); //Since str2 contains one character more than str1, it will give -1 System.out.println(str2.compareTo(str1)); //Since str1 contains one character less than str1, it will give 1 } }
Ieșire:
Scenariul 3: Luați în considerare următoarele două șiruri. Le vom compara și vom vedea rezultatul.
String str1 = „SAKET”;
String str2 = „saket”;
Care va fi rezultatul str1.compareTo (str2)?
Răspuns: Aici șirurile sunt egale, dar str1 are majuscule, în timp ce str2 are litere mici. Aceasta a fost limitarea metodei Java compareTo (). Rezultatul pe care îl vom obține va fi diferit de zero. Pentru a depăși această problemă, Java a introdus o altă variantă a metodei .compareTo (), care este
.compareToIgnoreCase ()
package codes; import java.lang.String; public class CompareTo { public static void main(String() args) { String str1 = 'SAKET'; String str2 = 'saket'; System.out.println(str1.compareTo(str2)); //The ASCII representation of the lowercase and uppercase has a difference of 32 } }
Ieșire:
Metoda Java String compareToIgnoreCase ()
Deoarece am discutat problema în caz de nepotrivire (Scenariul 3), avem deja o altă variantă a metodei .compareTo () care va ignora nepotrivirea de caz a șirurilor.
Sintaxa acestei metode este dată ca
int compareToIgnoreCase(String str)
Toate celelalte rămân aceleași, cu excepția faptului că .compareToIgnoreCase () nu ia în considerare nepotrivirea cazului.
Un exemplu de programare
Iată un exemplu de metodă Java compareTo (). În acest exemplu, am ilustrat diferența în rezultatele Java compareTo () și compareToIgnoreCase (). Java compareTo () va da o diferență de -32 în timp ce compareToIgnoreCase () va da o diferență de 0.
package codes; public class CompareToIgnoreCase { public static void main(String() args) { String str1 = 'SAKET'; String str2 = 'saket'; System.out.println(str1.compareTo(str2)); System.out.println(str1.compareToIgnoreCase(str2)); } }
Ieșire:
Explicația exemplului:
În exemplul de mai sus, am luat două șiruri care au aceeași valoare păstrând un șir în majuscule și altul în minuscule. Acum, o metodă Java .compareTo () va oferi rezultate bazate pe diferența ASCII în valoarea minusculelor și a majusculelor, deoarece va lua în considerare cazul caracterelor.
Dar Java .compareToIgnoreCase () nu va lua în considerare majuscule și va da un rezultat 0, ceea ce înseamnă că ambele șiruri sunt egale.
întrebări frecvente
Q # 1) Care este diferența dintre ==, egal și .compareTo ()?
Răspuns: Enumerate mai jos sunt principalele diferențe între ==, equals () și compareTo ().
!EROARE! operator neașteptat '=' | egal () | compara cu() |
---|---|---|
!EROARE! operator neașteptat '=' | egal () este o metodă. | compareTo () este o metodă. |
!EROARE! operator neașteptat '=' | metoda egal () face compararea conținutului. | compareTo () face comparația pe baza valorii ASCII. |
Tipul de returnare este boolean. | Tipul de returnare este boolean. | Tipul de returnare este Integer. |
Folosește referința variabilei String, astfel încât adresele de memorie ar trebui să fie aceleași atunci când se compară. | Nu necesită ca obiectele să fie ordonate logic. | Necesită ca obiectele să fie ordonate logic. |
Iată un exemplu de programare care ilustrează diferența.
package codes; public class CompareToIgnoreCase { public static void main(String() args) { String str1 = new String('Testing'); String str2 = 'Testing'; System.out.println(str1.compareTo(str2)); System.out.println(str1 ==str2); System.out.println(str1.equals(str2)); } }
Ieșire:
Q # 2) Metoda Java compareTo () este sensibilă la majuscule?
Răspuns: Da. Metoda Java .compareTo () ia în considerare caracterele majuscule și minuscule.
Mai jos este ilustrația.
package codes; public class CompareToIgnoreCase { public static void main(String() args) { String str1 = 'Software'; String str2 = 'SOFTWARE'; System.out.println(str1.compareTo(str2)); } }
Ieșire:
companii de dezvoltare web de top din India
Q # 3) Cum funcționează compareTo () în Java?
Răspuns: Metoda Java compareTo () compară de fapt valorile ASCII ale caracterelor unui șir.
Să spunem că vom compara o virgulă și un caracter spațial folosind metoda .compareTo (). După cum știm, un caracter spațial are o valoare ASCII 32, în timp ce o virgulă are o valoare ASCII 44. Diferența dintre valoarea ASCII a spațiului și virgula este 12.
Mai jos este exemplul de programare.
package codes; public class CompareTo { public static void main(String() args) { String str1 = ','; String str2 = ' '; System.out.println(str1.compareTo(str2)); } }
Ieșire:
Q # 4) Cum se găsește lungimea unui șir folosind metoda Java .compareTo ()?
Răspuns: Dat mai jos este programul pentru a găsi lungimea unui șir folosind metoda Java .compareTo ().
În acest exemplu, am luat un șir a cărui lungime trebuie să o găsim și un șir gol. Apoi am comparat șirul cu șirul gol. Diferența dintre ele va fi lungimea șirului.
package codes; public class CompareTo { public static void main(String() args) { String str1 = 'Tony Stark'; String str2 = ''; System.out.println(str1.compareTo(str2)); } }
Ieșire:
Q # 5) Ce returnează metoda compareTo?
Răspuns: Tipul de returnare al metodei Java compareTo () este întreg. Valoarea întregului poate fi zero, întregul pozitiv sau întregul negativ.
Concluzie
În acest tutorial, am înțeles în detaliu metoda Java String compareTo (). Funcționalitatea de bază, detaliile despre implementare și utilizarea în special exemplele de programare au fost furnizate pentru o mai bună înțelegere a conceptului legat de metoda String compareTo ().
Citește și = >> Interfețe comparabile și comparabile Java
Folosind această metodă, puteți compara două șiruri și o mulțime de alte utilizări sau domenii de aplicare, cum ar fi găsirea lungimii șirului, de asemenea, este posibilă cu ajutorul metodei comparare () care a fost acoperită în întrebările frecvente.
=> Vizitați aici pentru seria exclusivă de instruiri Java.
Lectură recomandată
- Tutorial Java String | Metode Java String cu exemple
- Metoda Java String Split () - Cum se împarte un șir în Java
- Java String cu buffer de șiruri și tutorial de generare de șiruri
- Funcții Python String
- Java String Array - Tutorial cu exemple de cod
- Interfață ListIterator în Java cu exemple
- Interfață Java și tutorial de clasă abstractă cu exemple
- OOP Java: Introducere în programarea orientată pe obiecte în Java