Strengen er en sekvens af tegn. I Java er objekter af String uforanderlige, hvilket betyder, at de er konstante og ikke kan ændres, når de først er oprettet.
indtastning af streng i java
Metoder til at sammenligne strenge i Java
Nedenfor er 5 måder at sammenligne to på Strenge i Java:
- Bruger brugerdefineret funktion
- Brug af String.equals()
- Brug af String.equalsIgnoreCase()
- Brug af Objects.equals()
- Brug af String.compareTo()
1. Brug af brugerdefineret funktion:
Definer en funktion til at sammenligne værdier med følgende betingelser:
- if (streng1> streng2) returnerer den en positiv værdi .
- hvis begge strenge er ens leksikografisk, dvs. (streng1 == streng2), returnerer den 0 .
- hvis (streng1
negativ værdi .
2. Brug af String.equals():
I Java sammenligner metoden string equals() de to givne strenge baseret på strengens data/indhold. Hvis alt indholdet af begge strenge er det samme, returnerer det sandt. Hvis et tegn ikke matcher, returnerer det falsk.
Syntaks:
str1.equals(str2);>
Her er str1 og str2 begge de strenge, der skal sammenlignes.
Eksempler:
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:
Java
// 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)); } }>
Produktion
Comparing Geeksforgeeks and Practice : false Comparing Geeks and Geeks : true Comparing Geeks and geeks : false Comparing Geeksforgeeks and Geeks : false>
3. Brug af String.equalsIgnoreCase() :
Det String.equalsIgnoreCase() metoden sammenligner to strenge uanset tilfældet (nedre eller øvre) af strengen. Denne metode returnerer sand, hvis argumentet ikke er null, og indholdet af begge strenge er det samme, der ignorerer store og små bogstaver, ellers er det falsk. Syntaks:
str2.equalsIgnoreCase(str1);>
Her er str1 og str2 begge de strenge, der skal sammenlignes.
Eksempler:
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:
Java // 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)); } }>
Produktion
Comparing Geeksforgeeks and Practice : false Comparing Geeks and Geeks : true Comparing Geeks and geeks : true Comparing Geeksforgeeks and Geeks : false>
4. Brug af Objects.equals():
Object.equals(Objekt a, Objekt b) metoden returnerer sand, hvis argumenterne er ens med hinanden og ellers falsk. Hvis begge argumenter er null, returneres true, og hvis præcis ét argument er null, returneres false. Ellers bestemmes lighed ved at bruge equals()-metoden i det første argument. Syntaks:
public static boolean equals(Object a, Object b)>
Her er a og b begge strengobjekter, der skal sammenlignes.
Eksempler:
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:
Java // 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)); } }>
Produktion
Comparing Geeksforgeeks and Geeks : false Comparing Geeks and Geeks : true Comparing Geeksforgeeks and null : false Comparing null and null : true>
5. Brug af String.compareTo() til at sammenligne to strenge
Syntaks for String compareTo()
int str1.compareTo(String str2)>
Arbejder: Den sammenligner og returnerer følgende værdier som følger:
- if (streng1> streng2) returnerer den en positiv værdi .
- hvis begge strenge er ens leksikografisk, dvs. (streng1 == streng2), returnerer den 0 .
- hvis (streng1
negativ værdi .
Nedenfor er implementeringen af ovenstående metode
Java // 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); } }>
Produktion
Geeksforgeeks Geeks : Not Equal Geeks Geeks : Equal Geeksforgeeks : Not Equal : Equal>
Bemærk: NULL-strengen kan ikke sendes som et argument til compareTo()-metoden.
For at vide mere om emnet henvises til String.compareTo() artikel.
Hvorfor ikke bruge == til sammenligning af strenge?
Generelt begge dele lige med() og == operatører i Java bruges til at sammenligne objekter for at kontrollere lighed, men her er nogle af forskellene mellem de to:
- Den største forskel mellem .equals()-metoden og ==-operatoren er, at den ene er metoden, og den anden er operatoren.
- Man kan bruge == operatorer til referencesammenligning (adressesammenligning) og .equals()-metoden til indholdssammenligning .
- Både s1 og s2 refererer til forskellige objekter.
- Når man bruger ==-operatoren til s1- og s2-sammenligningen, er resultatet falsk, da begge har forskellige adresser i hukommelsen.
- Ved at bruge lig, er resultatet sandt, fordi det kun sammenligner værdierne givet i s1 og s2.
For at vide mere om emnet henvises til sammenligning af strenge artikel.