java string compareto method with programming examples
V tomto výučbe sa dozvieme o metóde Java String compareTo () a zistíme, ako a kedy sa má v jazyku Java porovnávať pomocou Syntax a príklady:
Pochopíte, ako manipulovať s Java String pomocou metódy Java compareTo (). V tomto výučbe sa budeme zaoberať aj výstupnými typmi, ktoré získame metódou Java compareTo ().
Po prečítaní tohto tutoriálu budete určite schopní rozumieť a písať programy Java String, ktoré pre manipuláciu s reťazcami vyžadujú metódu .compareTo ().
=> Vyskúšajte tu Sprievodcu dokonalým školením Java.
Čo sa dozviete:
Metóda Java String compareTo ()
Metóda Java String compareTo () sa používa na kontrolu, či sú dva reťazce identické alebo nie. Ako už názov napovedá, porovnáva dva dané reťazce a zisťuje, či sú rovnaké alebo ktorý z nich je väčší.
Návratový typ metódy Java compareTo () je celé číslo a syntax je uvedená ako:
int compareTo(String str)
Vo vyššie uvedenej syntaxi je str premenná typu String, ktorá sa porovnáva s vyvolaním reťazca.
Napríklad: String1.compareTo (String2);
Ďalšou variáciou Java compareTo () je
int compareTo(Object obj)
Vo vyššie uvedenej syntaxi porovnáme reťazec s objektom obj.
Napríklad ,String1.compareTo („Toto je reťazcový objekt“);
Tu „Toto je reťazcový objekt“ je argument, ktorý odovzdávame funkcii compareTo () a porovnáva ho s parametrom String1.
Typy výstupu metódy Java compareTo ()
Výstup má tri typy, ktoré sú založené na výstupnej hodnote.
Ďalej je uvedená tabuľka, ktorá vysvetľuje všetky tri typy výstupných hodnôt.
Výstupná hodnota compareTo () | Popis |
---|---|
Nula | Dve struny sú si rovné. |
Väčšie ako nula | Vyvolávajúci reťazec je väčší ako str. |
Menej ako nula | Vyvolávajúci reťazec je menší ako str. |
Pochopme si tieto tri varianty podrobne pomocou príkladu.
Príklad programovania
Tu je príklad metódy Java typu compareTo (). Porovnanie je založené na rozdiele v hodnote ASCII znakov. Všeobecne je reťazec menší ako druhý, ak je v slovníku pred druhým.
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 } }
Výkon:
Vysvetlenie príkladu
Vo vyššie uvedenom príklade sme vzali päť vstupných reťazcov a medzi nimi sme vykonali základné porovnanie pomocou metódy Java .compareTo (). V prvom porovnaní máme v abecednom rade ‘A’ väčšie ako ‘G’ o 6 znakov, takže vráti +6. V druhom porovnaní máme „C“ menšie ako „A“ o 2 znaky, takže vráti -2.
Pri poslednom porovnaní (medzi str1 a str5), keďže sú obidva reťazce rovnaké, vráti hodnotu 0.
Rôzne scenáre
Pozrime sa podrobne na metódu .compareTo (). Tu sa pokúsime analyzovať rôzne scenáre a výstupy každého prípadu.
Scenár 1: Zvážte nasledujúce dva reťazce. Porovnáme ich a uvidíme výstup.
String str1 = “Testovanie softvéru”;
String str2 = “Pomocník pri testovaní softvéru”;
Aký bude výstup str1.compareTo (str2)?
Odpoveď: Pretože str2 obsahuje 5 znakov (jedna medzera + štyri znaky) viac ako prvý reťazec. Výstup by mal byť -5. Podobne, keď porovnávame str2 s str1, výstup by mal byť +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 } }
Výkon:
Scenár 2: Zvážte nasledujúce dva reťazce. Porovnáme ich a uvidíme výstup.
Reťazec str1 = “”;
Reťazec str2 = ”“;
top 10 spoločností zaoberajúcich sa prieskumom trhu na svete
Aký bude výstup str1.compareTo (str2)?
Odpoveď: Pretože str2 obsahuje o jeden znak (medzeru) viac ako str1, mal by dať výstupu hodnotu -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 } }
Výkon:
Scenár 3: Zvážte nasledujúce dva reťazce. Porovnáme ich a uvidíme výstup.
Reťazec str1 = “SAKET”;
Reťazec str2 = “saket”;
Aký bude výstup str1.compareTo (str2)?
Odpoveď: Tu sú reťazce rovnaké, ale str1 má veľké písmená, zatiaľ čo str2 má malé písmená. To bolo obmedzenie metódy Java compareTo (). Výstup, ktorý dostaneme, bude nenulový. Na prekonanie tohto problému predstavila Java ďalšiu variáciu metódy .compareTo (), ktorá je
.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 } }
Výkon:
Metóda Java String compareToIgnoreCase ()
Pretože sme diskutovali o probléme v prípade nesúladu prípadov (Scenár3), už máme iný variant metódy .compareTo (), ktorý bude ignorovať nesúlad prípadov reťazcov.
Syntax tejto metódy je uvedená ako
int compareToIgnoreCase(String str)
Všetko ostatné zostáva rovnaké, okrem skutočnosti, že .compareToIgnoreCase () nezohľadňuje nesúlad prípadov.
Príklad programovania
Tu je príklad metódy Java typu compareTo (). V tomto príklade sme ilustrovali rozdiel vo výstupoch programu Java compareTo () a compareToIgnoreCase (). Java compareTo () dá rozdiel -32, zatiaľ čo compareToIgnoreCase () dá rozdiel 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)); } }
Výkon:
Vysvetlenie príkladu:
Vo vyššie uvedenom príklade sme vzali dva reťazce, ktoré majú rovnakú hodnotu a zachovávajú jeden reťazec veľkými a druhý malými písmenami. Teraz metóda Java .compareTo () poskytne výsledky založené na rozdiele ASCII v hodnote malých a veľkých písmen, pretože bude brať do úvahy veľkosť znakov.
Ale Java .compareToIgnoreCase () nebude brať do úvahy veľkosť znakov a dá výsledok ako 0, čo znamená, že obidva reťazce sú rovnaké.
často kladené otázky
Otázka č. 1) Aký je rozdiel medzi ==, equals a .compareTo ()?
Odpoveď: Nižšie sú uvedené hlavné rozdiely medzi ==, equals () a compareTo ().
!CHYBA! nečakaný operátor '=' | rovná sa () | porovnať s() |
---|---|---|
!CHYBA! nečakaný operátor '=' | equals () je metóda. | compareTo () je metóda. |
!CHYBA! nečakaný operátor '=' | metóda equals () robí porovnanie obsahu. | compareTo () vykoná porovnanie na základe hodnoty ASCII. |
Návratový typ je Boolean. | Návratový typ je Boolean. | Návratový typ je Integer. |
Používa odkaz na premennú String, takže adresy pamätí by mali byť pri porovnaní rovnaké. | Nevyžaduje logické usporiadanie objektov. | Vyžaduje logické usporiadanie objektov. |
Tu je príklad programovania ilustrujúci rozdiel.
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)); } }
Výkon:
Otázka 2) Je v metóde Java compareTo () rozlišované veľké a malé písmená?
Odpoveď: Áno. Metóda Java .compareTo () zohľadňuje veľké a malé písmená a veľké písmená.
Nižšie je uvedená ilustrácia.
package codes; public class CompareToIgnoreCase { public static void main(String() args) { String str1 = 'Software'; String str2 = 'SOFTWARE'; System.out.println(str1.compareTo(str2)); } }
Výkon:
otázky a odpovede na pohovor s podporou pre počítač na úrovni l1
Otázka č. 3) Ako funguje porovnávanie () v Jave?
Odpoveď: Metóda Java compareTo () v skutočnosti porovnáva hodnoty ASCII znakov reťazca.
Povedzme, že ideme porovnávať čiarku a znak medzery pomocou metódy .compareTo (). Ako vieme, znak medzery má hodnotu ASCII 32, zatiaľ čo čiarka má hodnotu ASCII 44. Rozdiel medzi hodnotou ASCII medzery a čiarky je 12.
Ďalej je uvedený príklad programovania.
package codes; public class CompareTo { public static void main(String() args) { String str1 = ','; String str2 = ' '; System.out.println(str1.compareTo(str2)); } }
Výkon:
Otázka č. 4) Ako zistiť dĺžku reťazca pomocou metódy Java .compareTo ()?
Odpoveď: Ďalej je uvedený program na vyhľadanie dĺžky reťazca pomocou metódy Java .compareTo ().
V tomto príklade sme vzali jeden reťazec, ktorého dĺžku musíme nájsť, a prázdny reťazec. Potom sme porovnali reťazec s prázdnym reťazcom. Rozdiel medzi nimi bude dĺžka reťazca.
package codes; public class CompareTo { public static void main(String() args) { String str1 = 'Tony Stark'; String str2 = ''; System.out.println(str1.compareTo(str2)); } }
Výkon:
Otázka č. 5) Čo vracia metóda compareTo?
Odpoveď: Návratový typ metódy Java compareTo () je celé číslo. Hodnota celého čísla môže byť nula, kladné celé číslo alebo záporné celé číslo.
Záver
V tomto tutoriáli sme podrobne porozumeli metóde Java String compareTo (). Poskytli sme základné funkcionality, podrobnosti o implementácii a použití, najmä príklady programovania, pre lepšie pochopenie konceptu súvisiaceho s metódou String compareTo ().
Prečítajte si tiež = >> Porovnávacie a porovnávacie rozhrania Java
Pomocou tejto metódy môžete porovnať dva reťazce a mnoho ďalších použití alebo oblastí použitia, ako je napríklad zistenie dĺžky reťazca, je tiež možné pomocou metódy compareTo (), ktorá je obsiahnutá v často kladených otázkach.
=> Navštívte tu sériu exkluzívnych výukových programov Java.
Odporúčané čítanie
- Výukový program pre Java String Metódy reťazca Java s príkladmi
- Metóda Java String Split () - Ako rozdeliť reťazec v Jave
- Výukový program Java String s programom String Buffer a String Builder
- Funkcie reťazca Python
- Výukový program Java String Array s príkladmi kódu
- Rozhranie ListIterator v Jave s príkladmi
- Výukový program pre rozhranie Java a abstraktnú triedu s príkladmi
- OOP Java: Úvod do objektovo orientovaného programovania v Jave