Úvod do porovnávání řetězců v Javě

V Javě je posloupnost znaků známá jako řetězec. Je neměnný (po vytvoření nelze změnit) a pomáhá při provádění několika operací. Srovnání řetězců je také běžnou programovací úlohou v Javě. Může být provedeno několika způsoby a bude podrobně popsáno v následujících částech.

Jak porovnat String v Javě?

Jak již bylo řečeno, Stringové srovnání lze provést pomocí různých metod. Oni jsou:

  • Použití metody equals ()
  • Použití metody CompareTo ()
  • Použití metody equalsIgnoreCase ()
  • Použití metody CompareToIgnoreCase ()

1. Metoda se rovná ()

metoda equals () porovnává dva řetězce na základě obsahu řetězce. Pokud řetězce nejsou ve stejném případě (tj. Velká nebo malá písmena), bude to považováno za neshodné. Níže je uveden příklad metody equals ().

Program

public class StringComparisonExamples (
public static void main(String() args) (
String str1 = "Balloon";
String str2 = "Balloon";
//string comparison using equals method
if (str1.equals(str2)) (
System.out.println("Both str1 : " + str1 + " and str2 : "+ str2 +" are equal");
)
else
(
System.out.println("Both str1 : " + str1 + " and str2 : "+ str2 +" are not equal");
)
String str3 = "Happy";
String str4 = "hai";
if (str3.equals(str4)) (
System.out.println("Both str3 : " + str3 + " and str4 : "+ str4 +" are equal");
)
else
(
System.out.println("Both str3 : " + str3 + " and str4 : "+ str4 +" are not equal");
)
String str5 = "Happy";
String str6 = "hard";
if (str5.equals(str6)) (
System.out.println("Both str5 : " + str5 + "and str6 : "+ str6 +" are equal");
)
else
(
System.out.println("Both str5 : " + str5 + " and str6 : "+ str6 +" are not equal");
)
)
)

Výstup:

Vysvětlení výše uvedeného kódu

  • Zde jsou dva řetězce str1 a str2 stejné jako ve stejném případě. (Pouzdro na velbloud).
  • Rovněž Str3 a Str4, str5 a str6 nejsou stejné.

2. Porovnejte s metodou ()

V této metodě jsou hodnoty porovnány lexikograficky a vrací hodnotu celočíselného typu. Hodnota je založena na tom, zda je první řetězec stejný, menší nebo větší než druhý řetězec.

Jsou přítomny dva řetězce str1 a str2 a

  • pokud str1 == str2, pak 0
  • pokud str1> str2, pak hodnota + ve
  • pokud str1 <str2, pak -ve hodnota

Program

//Java program to demonstrate compareTo method
public class StringComparisonExamples (
public static void main(String() args) (
String str1 = "Balloon";
String str2 = "Balloon";
String str3 = "Happy";
String str4 = "hai";
//string comparison using compareTo method
System.out.println(str1.compareTo(str2));
System.out.println(str3.compareTo(str4));
String str5 = "Happy";
String str6 = "Hardest one";
System.out.println(str5.compareTo(str6));
)
)

Výstup:

Vysvětlení výše uvedeného kódu

  • Protože dva řetězce str1 a str2 jsou lexikograficky stejné, vrátí se 0.
  • Současně je str3 menší než str4 a str5 je lexikograficky méně než str6. Vrátí se tedy záporná hodnota.

3. Stejná metoda ignorování případu

Při použití této metody budou porovnány dva řetězce, aniž by bylo nutné zvážit, zda je řetězec velká nebo malá.

Program

//Java program to demonstrate equalsIgnoreCase method
public class StringComparisonExamples (
public static void main(String() args) (
String str1 = "Balloon";
String str2 = "balloon";
//string comparison using equalsIgnoreCase method
System.out.println(str1.equalsIgnoreCase(str2));
String str3 = "Happy";
String str4 = "hai";
System.out.println(str3.equalsIgnoreCase(str4));
String str5 = "Happy";
String str6 = "hard";
System.out.println(str5.equalsIgnoreCase(str6));
)
)

Výstup:

Vysvětlení výše uvedeného kódu

  • Protože se používá metoda equalsIgnoreCase, str1 a str2 jsou stejné, i když se jedná o různé případy (malá a velká písmena). Pravda je tedy vrácena.
  • V případě str3 a str4, str5 a str6 jsou dva řetězce odlišné. Proto je vrácena chyba.

4. Porovnejte s metodou ignorování případu

Tato metoda je podobná metodě CompareTo, kde jsou řetězce porovnávány lexikograficky. Rozdíl je v tom, že porovnání nebude ovlivněno, zda jsou řetězce ve velkých nebo malých písmech.

Program

//Java program to demonstrate compareToIgnoreCase method
public class StringComparisonExamples (
public static void main(String() args) (
String str1 = "Balloon";
String str2 = "balloon";
//string comparison using compareToIgnoreCase method
System.out.println(str1.compareToIgnoreCase(str2));
String str3 = "Happy";
String str4 = "hai";
System.out.println(str3.compareToIgnoreCase(str4));
String str5 = "Happy";
String str6 = "Hard";
System.out.println(str5.compareToIgnoreCase(str6));
)
)

Výstup:

Vysvětlení výše uvedeného kódu

  • Zde je provedena kombinace CompareTo a Ignorecase. Protože str1 i str2 jsou stejné, aniž by zvážily případy, vrátí se 0.
  • Podobně je kladná hodnota vrácena, protože str3 je větší než str4 a záporná hodnota je vrácena, protože str5 je menší než str6.

Nyní se podívejme na všechny výše uvedené metody v jediném programu, abychom mohli lépe porozumět porovnáváním řetězců.

Program

//Java program to demonstrate different methods for string comparison
public class StringComparisonExamples (
public static void main(String() args) (
String str1 = "Balloon";
String str2 = "Balloon";
System.out.println("Comparison of str1 : " + str1 + " and str2 : " + str2);
System.out.println("Using equals method ");
//string comparison using equals method
if (str1.equals(str2)) (
System.out.println("Both are equal");
)
else
(
System.out.println("Both are not equal");
)
System.out.println("Using compareTo method ");
//string comparison using compareTo method
System.out.println(str1.compareTo(str2));
System.out.println("Using equalsIgnoreCase method ");
//string comparison using equalsIgnoreCase method
System.out.println(str1.equalsIgnoreCase(str2));
System.out.println("Using compareToIgnoreCase method ");
//string comparison using compareToIgnoreCase method
System.out.println(str1.compareToIgnoreCase(str2));
String str3 = "Happy";
String str4 = "hai";
System.out.println("\nComparison of str3 : " + str3 + " and str4 : " + str4);
System.out.println("Using equals method ");
if (str3.equals(str4)) (
System.out.println("Both are equal");
)
else
(
System.out.println("Both are not equal");
)
System.out.println("Using compareTo method ");
System.out.println(str3.compareTo(str4));
System.out.println("Using equalsIgnoreCase method ");
System.out.println(str3.equalsIgnoreCase(str4));
System.out.println("Using compareToIgnoreCase method ");
System.out.println(str3.compareToIgnoreCase(str4));
String str5 = "Happy";
String str6 = "hard";
System.out.println("\nComparison of str5 : " + str5 + " and str6 : " + str6);
System.out.println("Using equals method ");
if (str5.equals(str6)) (
System.out.println("Both are equal");
)
else
(
System.out.println("Both are not equal");
)
System.out.println("Using compareTo method ");
System.out.println(str5.compareTo(str6));
System.out.println("Using equalsIgnoreCase method ");
System.out.println(str5.equalsIgnoreCase(str6));
System.out.println("Using compareToIgnoreCase method ");
System.out.println(str5.compareToIgnoreCase(str6));
)
)

Výstup:

Závěr

Řetězec je posloupnost znaků a jeho objekty jsou neměnné. K porovnání řetězců jsou k dispozici různé metody, jako jsou rovná, srovnávat atd. Všechny tyto metody se používají na základě požadavků. Jsou podrobně vysvětleny ve výše uvedené části.

Doporučené články

Toto je průvodce porovnáním řetězců v Javě. Zde diskutujeme Úvod do porovnávání řetězců v Javě, Jak porovnat String v Java spolu s kódy a výstupy. Další informace naleznete také v dalších navrhovaných článcích -

  1. Chráněné klíčové slovo v Javě
  2. JTextArea v Javě
  3. GridBagLayout v Javě
  4. Metody pole v Javě

Kategorie: