Řetězec je posloupnost znaků. V Javě jsou objekty String neměnné, což znamená, že jsou konstantní a po vytvoření je nelze změnit.
jak zkontrolovat velikost obrazovky
Metody porovnání řetězců v Javě
Níže je 5 způsobů, jak porovnat dva Struny v Javě:
- Použití uživatelem definované funkce
- Použití String.equals()
- Použití String.equalsIgnoreCase()
- Použití Objects.equals()
- Použití String.compareTo()
1. Použití uživatelem definované funkce:
Definujte funkci pro porovnání hodnot s následujícími podmínkami:
- if (řetězec1> řetězec2) vrátí a kladná hodnota .
- pokud jsou oba řetězce lexikograficky stejné, tj. (řetězec1 == řetězec2), vrátí 0 .
- jestliže (řetězec1
záporná hodnota .
2. Použití String.equals() :
V Javě metoda string equals() porovnává dva dané řetězce na základě dat/obsahu řetězce. Pokud jsou všechny obsahy obou řetězců stejné, vrátí hodnotu true. Pokud některý znak neodpovídá, vrátí hodnotu false.
Syntax:
str1.equals(str2);>
Zde str1 a str2 jsou oba řetězce, které mají být porovnány.
Příklady:
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:
Jáva
// 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)); } }>
Výstup
Comparing Geeksforgeeks and Practice : false Comparing Geeks and Geeks : true Comparing Geeks and geeks : false Comparing Geeksforgeeks and Geeks : false>
3. Použití String.equalsIgnoreCase() :
The String.equalsIgnoreCase() metoda porovnává dva řetězce bez ohledu na velikost písmen (dolní nebo horní) řetězce. Tato metoda vrátí hodnotu true, pokud argument není null a obsah obou řetězců je stejný, ignoruje se malá a velká písmena, jinak je false. Syntax:
str2.equalsIgnoreCase(str1);>
Zde str1 a str2 jsou oba řetězce, které mají být porovnány.
Příklady:
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:
Jáva // 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)); } }>
Výstup
Comparing Geeksforgeeks and Practice : false Comparing Geeks and Geeks : true Comparing Geeks and geeks : true Comparing Geeksforgeeks and Geeks : false>
4. Použití Objects.equals() :
Object.equals(Objekt a, Objekt b) metoda vrací hodnotu true, pokud jsou argumenty navzájem stejné a v opačném případě jsou nepravdivé. Pokud jsou tedy oba argumenty prázdné, je vrácena hodnota true a pokud je právě jeden argument prázdný, je vrácena hodnota false. Jinak je rovnost určena pomocí metody equals() prvního argumentu. Syntax:
public static boolean equals(Object a, Object b)>
Zde a a b jsou oba objekty řetězce, které se mají porovnávat.
Příklady:
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:
Jáva // 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)); } }>
Výstup
Comparing Geeksforgeeks and Geeks : false Comparing Geeks and Geeks : true Comparing Geeksforgeeks and null : false Comparing null and null : true>
5. Použití String.compareTo() pro porovnání dvou řetězců
Syntaxe String CompareTo()
int str1.compareTo(String str2)>
Pracovní: Porovnává a vrací následující hodnoty takto:
- if (řetězec1> řetězec2) vrátí a kladná hodnota .
- pokud jsou oba řetězce lexikograficky stejné, tj. (řetězec1 == řetězec2), vrátí 0 .
- jestliže (řetězec1
záporná hodnota .
Níže je uvedena implementace výše uvedené metody
Jáva // 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); } }>
Výstup
Geeksforgeeks Geeks : Not Equal Geeks Geeks : Equal Geeksforgeeks : Not Equal : Equal>
Poznámka: Řetězec NULL nelze předat jako argument metodě CompareTo().
Chcete-li se dozvědět více o tématu, přejděte na String.compareTo() článek.
Proč nepoužít == pro porovnání řetězců?
Obecně platí, že obojí rovná se() a == operátory v Javě se používají k porovnání objektů ke kontrole rovnosti, ale zde jsou některé rozdíly mezi těmito dvěma:
- Hlavní rozdíl mezi metodou .equals() a operátorem == je ten, že jedna je metoda a druhá je operátor.
- Pro porovnání referencí lze použít operátory == (porovnání adres) a metoda .equals() pro srovnání obsahu .
- S1 i s2 odkazují na různé objekty.
- Když se pro srovnání s1 a s2 použije operátor ==, pak je výsledek nepravdivý, protože oba mají v paměti různé adresy.
- Při použití rovnosti je výsledek pravdivý, protože porovnává pouze hodnoty uvedené v s1 a s2.
Chcete-li se dozvědět více o tématu, přejděte na srovnání strun článek.