java string compareto method with programming examples
V tomto výukovém programu se dozvíte o metodě Java String compareTo () a uvidíme, jak a kdy použít porovnání v jazyce Java spolu se syntaxí a příklady:
Pochopíte, jak manipulovat s řetězcem Java pomocí metody Java CompareTo (). V tomto kurzu se také budeme zabývat typy výstupů, které získáme metodou Java compareTo ().
Po přečtení tohoto tutoriálu budete určitě schopni porozumět a napsat programy Java String, které pro manipulaci s řetězci vyžadují metodu .compareTo ().
=> Podívejte se na průvodce Perfect Java Training Guide zde.
Co se naučíte:
Metoda Java String compareTo ()
Metoda Java String compareTo () se používá ke kontrole, zda jsou dva řetězce stejné nebo ne. Jak název napovídá, porovnává dva dané řetězce a zjišťuje, zda jsou stejné nebo který je větší.
Návratový typ metody Java compareTo () je celé číslo a syntaxe je uvedena jako:
int compareTo(String str)
Ve výše uvedené syntaxi str je proměnná String, která se porovnává s vyvolávajícím řetězcem.
Například: String1.compareTo (String2);
Další variantou Java compareTo () je
int compareTo(Object obj)
Ve výše uvedené syntaxi porovnáme String s Object obj.
Například ,String1.compareTo („Toto je řetězcový objekt“);
Zde „Toto je objekt řetězce“ je argument, který předáváme do metody porovnat () a porovnává jej s řetězcem 1.
Typy výstupu metody Java compareTo ()
Výstup má tři typy, které jsou založeny na výstupní hodnotě.
Níže je tabulka, která vysvětluje všechny tři typy výstupních hodnot.
Porovnat s () výstupní hodnotou | Popis |
---|---|
Nula | Dva řetězce jsou stejné. |
Větší než nula | Vyvolávající řetězec je větší než str. |
Méně než nula | Vyvolávající řetězec je menší než str. |
Podívejme se na tyto tři varianty podrobně pomocí příkladu.
Příklad programování
Zde je příklad metody Java srovnávací (). Porovnání je založeno na rozdílu v hodnotě ASCII znaků. Obecně řečeno, řetězec je menší než ten druhý, pokud je ve slovníku před 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ýstup:
Vysvětlení příkladu
Ve výše uvedeném příkladu jsme vzali pět vstupních řetězců a provedli základní srovnání mezi nimi pomocí metody Java .compareTo (). V prvním srovnání máme v abecední řadě „A“ větší než „G“ o 6 znaků, takže vrátí +6. Ve druhém srovnání máme „C“ menší než „A“ o 2 znaky, takže vrátí -2.
V posledním srovnání (mezi str1 a str5), protože oba řetězce jsou stejné, vrátí 0.
Různé scénáře
Pojďme podrobně pochopit metodu .compareTo (). Zde se pokusíme analyzovat různé scénáře a výstup každého případu.
Scénář 1: Zvažte následující dva řetězce. Porovnáme je a uvidíme výstup.
String str1 = „Testování softwaru“;
String str2 = „Nápověda k testování softwaru“;
Jaký bude výstup str1.compareTo (str2)?
Odpovědět: Protože str2 obsahuje 5 znaků (jedna mezera + čtyři znaky) více než první řetězec. Výstup by měl být -5. Podobně, když porovnáváme str2 s str1, výstup by měl být +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ýstup:
Scénář 2: Zvažte následující dva řetězce. Porovnáme je a uvidíme výstup.
Řetězec str1 = “”;
Řetězec str2 = ”“;
aplikace pro naplánování instagramových příspěvků zdarma
Jaký bude výstup str1.compareTo (str2)?
Odpovědět: Protože str2 obsahuje o jeden znak (mezeru) více než str1, měl by dát výstup jako -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ýstup:
Scénář 3: Zvažte následující dva řetězce. Porovnáme je a uvidíme výstup.
Řetězec str1 = “SAKET”;
Řetězec str2 = „saket“;
Jaký bude výstup str1.compareTo (str2)?
Odpovědět: Zde jsou řetězce stejné, ale str1 má velká písmena, zatímco str2 má malá písmena. To bylo omezení metody Java compareTo (). Výstup, který dostaneme, bude nenulový. K překonání tohoto problému zavedla Java další variantu metody .compareTo (), která 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ýstup:
Metoda Java String compareToIgnoreCase ()
Jak jsme diskutovali o problému v případě nesouladu případů (Scénář3), již máme další variantu metody .compareTo (), která bude ignorovat případy nesouladu řetězců.
Syntaxe této metody je uvedena jako
int compareToIgnoreCase(String str)
Všechno ostatní zůstává stejné, kromě skutečnosti, že .compareToIgnoreCase () nezohledňuje nesoulad případů.
Příklad programování
Zde je příklad metody Java srovnávací (). V tomto příkladu jsme ilustrovali rozdíl ve výstupech Java compareTo () a compareToIgnoreCase (). Java compareTo () dá rozdíl -32, zatímco compareToIgnoreCase () dá rozdíl 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ýstup:
Vysvětlení příkladu:
Ve výše uvedeném příkladu jsme vzali dva řetězce, které mají stejnou hodnotu a udržují jeden řetězec velkými písmeny a druhý malými písmeny. Metoda Java .compareTo () nyní poskytne výsledky založené na rozdílu ASCII v hodnotě malých a velkých písmen, protože zohlední případ znaků.
Ale Java .compareToIgnoreCase () nebude brát v úvahu znakový případ a dá výsledek jako 0, což znamená, že oba řetězce jsou stejné.
Často kladené otázky
Otázka č. 1) Jaký je rozdíl mezi ==, equals a .compareTo ()?
Odpověď: Níže jsou uvedeny hlavní rozdíly mezi ==, equals () a compareTo ().
!CHYBA! neočekávaný operátor '=' | rovná se() | porovnat s() |
---|---|---|
!CHYBA! neočekávaný operátor '=' | equals () je metoda. | compareTo () je metoda. |
!CHYBA! neočekávaný operátor '=' | metoda equals () provede srovnání obsahu. | compareTo () provede srovnání na základě hodnoty ASCII. |
Návratový typ je Boolean. | Návratový typ je Boolean. | Návratový typ je Integer. |
Používá odkaz na proměnnou String, takže adresy paměti by při porovnávání měly být stejné. | Nevyžaduje logické uspořádání objektů. | Vyžaduje logické uspořádání objektů. |
Zde je příklad programování ilustrující rozdíl.
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ýstup:
Otázka č. 2) Je v metodě Java compareTo () velká a malá písmena?
Odpovědět: Ano. Metoda Java .compareTo () bere v úvahu znaky a rozlišuje velká a malá písmena.
Níže je ilustrace.
package codes; public class CompareToIgnoreCase { public static void main(String() args) { String str1 = 'Software'; String str2 = 'SOFTWARE'; System.out.println(str1.compareTo(str2)); } }
Výstup:
čisté otázky a odpovědi pro nováčky
Otázka č. 3) Jak v systému Java funguje komparace ()?
Odpovědět: Metoda Java compareTo () ve skutečnosti porovnává hodnoty ASCII znaků řetězce.
Řekněme, že budeme porovnávat čárku a mezeru pomocí metody .compareTo (). Jak víme, znak mezery má hodnotu ASCII 32, zatímco čárka má hodnotu ASCII 44. Rozdíl mezi hodnotou ASCII mezery a čárkou je 12.
Níže je uveden příklad programování.
package codes; public class CompareTo { public static void main(String() args) { String str1 = ','; String str2 = ' '; System.out.println(str1.compareTo(str2)); } }
Výstup:
Otázka č. 4) Jak zjistit délku řetězce pomocí metody Java .compareTo ()?
Odpovědět: Níže je uveden program pro zjištění délky řetězce pomocí metody Java .compareTo ().
V tomto příkladu jsme vzali jeden řetězec, jehož délku musíme najít, a prázdný řetězec. Pak jsme porovnali řetězec s prázdným řetězcem. Rozdíl mezi nimi bude délka řetězce.
package codes; public class CompareTo { public static void main(String() args) { String str1 = 'Tony Stark'; String str2 = ''; System.out.println(str1.compareTo(str2)); } }
Výstup:
Otázka č. 5) Co vrátí metoda compareTo?
Odpovědět: Návratový typ metody Java compareTo () je celé číslo. Hodnota celého čísla může být nula, kladné celé číslo nebo záporné celé číslo.
Závěr
V tomto tutoriálu jsme podrobně porozuměli metodě Java String compareTo (). Byly poskytnuty základní funkce, podrobnosti o implementaci a použití, zejména příklady programování, pro lepší pochopení konceptu souvisejícího s metodou String compareTo ().
Přečtěte si také = >> Srovnatelná a srovnávací rozhraní Java
Pomocí této metody můžete porovnat dva řetězce a mnoho dalších použití nebo aplikačních oblastí, jako je zjištění délky řetězce, je také možné pomocí metody compareTo (), která byla zahrnuta v často kladených otázkách.
=> Navštivte zde exkluzivní sérii výukových programů Java.
Doporučené čtení
- Výukový program Java String | Metody řetězců Java s příklady
- Metoda Java String Split () - Jak rozdělit řetězec v Javě
- Výukový program Java String s funkcí String Buffer a String Builder
- Funkce řetězce Python
- Výukový program Java String Array - příklady kódu
- Rozhraní ListIterator v Javě s příklady
- Výukový program pro rozhraní Java a abstraktní třídu s příklady
- OOP Java: Úvod do objektově orientovaného programování v Javě