Hogyan hasonlítsunk össze két karakterláncot Java
Módszerek a karakterláncok összehasonlítására Java
Java különböző módszereket kínál, amelyek segítségével összehasonlíthat két karakterláncot Java. Karakterlánc összehasonlítás in Java egy olyan funkció, amely karaktersorozatot illeszt egy karakterlánchoz.
Megtanulhatja, hogyan kell összehasonlítani a karakterláncokat Java, használhatja a következő osztályok által biztosított metódusokat.
- Vonós osztály a Java.lang csomag.
- Objektumok osztály a Java.util csomag.
- StringUtils osztály az org.apache.commons.lang3 csomagból.
A legtöbb ilyen Java Összehasonlítási karakterláncok módszereinek vannak megoldásai az eset figyelmen kívül hagyására. Ebben Java oktatóanyagból megismerheti a különböző módszereket, amelyekkel összehasonlíthat két karakterláncot.
1. módszer: String equals() metódus
A Java Húr egyenlő() metódus összehasonlít két karakterlánc objektumot azonos karakterláncértékekért.
Syntax:
public boolean equals(Object anObject)
egyenlő() metódus paraméterei:
anObject – A karakterláncok összehasonlítására szolgáló argumentumkarakterlánc.
equals() metódus visszatérési típusai
- Igaz értéket ad vissza, ha a megadott karakterlánc-literál megegyezik az első karakterlánccal.
- False értéket ad vissza, ha az első karakterlánc nem egyezik meg az argumentum karakterlánccal.
Példa:
public class CompareTwoStrings {
public static void main(String[] args) {
String stringOne = "Guru99";
String stringTwo = "Guru99";
System.out.println("is Guru99 equal to Guru99: "+stringOne.equals(stringTwo));
String stringThree = "GURU99";
System.out.println("is Guru99 equal to GURU99: "+stringOne.equals(stringThree));
}
}
Várható teljesítmény:
is Guru99 equal to Guru99: true is Guru99 equal to GURU99: false
Magyarázat:
- Hamis értéket kapott az utolsó kimenetben, mert a megadott objektumnak más a kis- és nagybetűje.
Megjegyzések: Használja a string equals metódust a kis- és nagybetűk közötti karakterlánc-összehasonlításhoz. Használja az „equalsIgnoreCase” metódust a különböző karakterlánc-értékekkel rendelkező karakterlánc-objektumok összehasonlításához.
2. módszer: Az objektumok egyenlőek() metódusa
A Java Az objektumok egyenlő () metódus összehasonlítja két karakterlánc objektumot, hogy megállapítsa, azonosak-e az értékek.
Syntax:
public static boolean equals(Object a, Object b)
egyenlő() metódus paraméterei
a – Az első karakterlánc objektum argumentuma.
b – A második karakterlánc-objektum argumentuma.
equals() metódus visszatérési típusai
- Igaz értéket ad vissza, ha a karakterlánc-literálok egyenlőek. Ha a két argumentumban null értéket adunk át, az is igazat ad vissza.
- False értéket ad vissza, ha a karakterlánc-literálok nem egyenlőek.
Példa:
import java.util.Objects;
public class CompareTwoStrings {
public static void main(String[] args) {
String stringOne = "Guru99";
String stringTwo = "Guru99";
System.out.println("is Guru99 equal to Guru99: " + Objects.equals(stringOne, stringTwo));
String stringThree = null;
String stringFour = null;
System.out.println("is Guru99 equal to Guru99: " + Objects.equals(stringThree, stringFour));
}
}
output:
is Guru99 equal to Guru99: true is Guru99 equal to Guru99: true
Magyarázat:
Ebből a példából láthatja, hogy a kimenet igaz logikai értéke, mivel az összehasonlított karakterláncok egyenlőek.
3. módszer: String Összehasonlításhoz() metódus
A Java String Összehasonlításhoz() módszer két karakterláncot hasonlít össze ábécé sorrendben. Általában lexikográfiai rendnek nevezik.
Syntax:
public int compareTo(String str)
Összehasonlítás() metódus paraméterei
str – Az aktuális karakterlánccal összehasonlítandó karakterlánc.
Összehasonlítás() metódus adja vissza
- 0 – Nullát ad vissza, ha a megadott objektum egyenlő az aktuális karakterlánccal.
- < 0 – nullánál kisebb számot ad vissza, ha ez a karakterlánc kisebb, mint a megadott objektum.
- > 0 – Nullánál nagyobb számot ad vissza, ha ez a karakterlánc meghaladja a megadott karakterláncot.
Példa:
public class CompareTwoStrings {
public static void main(String[] args) {
String stringOne = "Guru99";
String stringTwo = "Guru99";
System.out.println("is Guru99 equal to Guru99: " + stringOne.compareTo(stringTwo));
String stringThree = "GURU99";
// u = 117, U = 85, result = 117-85 = 32
System.out.println("is Guru99 equal to GURU99: " + stringOne.compareTo(stringThree));
}
}
Várható teljesítmény:
is Guru99 equal to Guru99: 0 is Guru99 equal to GURU99: 32
Magyarázat:
Az első eredmény nulla értéket ad vissza, mivel az első és a második karakterlánc egyenlő.
A második eredmény harminckettőt ad vissza, mivel a karakterek eltérőek.
Jegyzet: Az esetek figyelmen kívül hagyásához használhatja a „compareToIgnoreCase” metódust.
4. módszer: StringUtils equals() metódus
A Java StringUtils egyenlő () módszer két karaktersorozat egyenlőségét hasonlítja össze.
Győződjön meg arról, hogy hozzáadta a programhoz az „org.apache.commons.lang3” könyvtárat. Ez lehetővé teszi a karakterláncok összehasonlítását a StringUtil metódusokkal.
Maven projektekhez használja ezt útmutató a könyvtár hozzáadásához a projekthez.
Ha azonban összeállítási eszközök nélkül szeretné hozzáadni a könyvtárat, használja ezt útmutató.
Syntax:
public static boolean equals(CharSequnce cs1, CharSequence cs2)
A StringUtils equals() metódus paraméterei
- cs1 – Az első argumentum karaktersorozata.
- cs2 – A második argumentum karaktersorozata.
A StringUtils equals() metódussal tér vissza
- Igaz értéket ad vissza, ha a karakterlánc-összehasonlítás egyenlő. Akkor érvényes, ha null értéket ad meg a két argumentumban.
- False értéket ad vissza, ha a karakterlánc-összehasonlítás nem egyenlő.
Példa:
import org.apache.commons.lang3.StringUtils;
public class CompareTwoStrings {
public static void main(String[] args) {
String stringOne = "Guru99";
String stringTwo = "Guru99";
System.out.println("is Guru99 equal to Guru99: " + StringUtils.equals(stringOne, stringTwo));
String stringThree = "GURU99";
System.out.println("is Guru99 equal to GURU99: " + StringUtils.equals(stringOne, stringThree));
}
}
output:
is Guru99 equal to Guru99: true is Guru99 equal to GURU99: false
Magyarázat:
Mivel az első és a második karakterlánc tartalma egyenlő, az eredmény igazat ad vissza.
Használhatja az „equalsIgnoreCase” metódust a kis- és nagybetűk figyelmen kívül hagyásához.
5. módszer: StringUtils equalsAny() metódus
A Java StringUtils equalsAny() metódus ellenőrzi, hogy létezik-e karakterlánc az argumentumokban.
Syntax:
public static boolean equalsAny(CharSequence string, Charsequence… searchStrings)
StringUtils equalsAny() metódus paraméterei
- string – Az első argumentum karakterlánc-értéke. Az argumentum null értéke is lehet.
- searchStrings – Karakterlánc-argumentumok halmaza a metódus számára annak megállapítására, hogy az első argumentumkarakterlánc jelen van-e.
A StringUtils equalsAny() metódus visszatér
- Igaz értéket ad vissza, ha az egyező karakterlánc megtalálható a változó számú keresési karakterláncban. Ez akkor érvényes, ha mindkét argumentum nulla.
- False értéket ad vissza, ha a megfelelő karakterlánc nem egyezik egyetlen karakterlánccal sem a változó számú keresési karakterláncban.
Példa:
import org.apache.commons.lang3.StringUtils;
public class CompareTwoStrings {
public static void main(String[] args) {
String stringOne = "Guru99";
String[] stringTwo = new String[] {
"Guru99",
"JavaGuru99"
};
System.out.println("is Guru99 available: " +
StringUtils.equalsAny(stringOne, stringTwo));
String[] stringThree = new String[] {
"GURU99",
"JavaGuru99"
};
System.out.println("is GURU99 available: " +
StringUtils.equalsAny(stringOne, stringThree));
}
}
output:
is Guru99 available: true is GURU99 available: false
Magyarázat:
Mivel az első és a második karakterlánc tartalma egyenlő, az eredmény igazat ad vissza. Használhatja az „equalsAnyIgnoreCase” metódust a kis- és nagybetűk figyelmen kívül hagyásához.
6. módszer: == operátor használata
A karakterláncok == operátora ellenőrzi, hogy az objektumhivatkozások címe megegyezik-e.
Példa:
public class CompareTwoStrings {
public static void main(String[] args) {
String stringOne = "Guru99";
String stringTwo = "Guru99";
System.out.println("is Guru99 == to Guru99: " + (stringOne == stringTwo));
String stringThree = "GURU99";
System.out.println("is Guru99 == to GURU99: " + (stringOne == stringThree));
}
}
Várható teljesítmény:
is Guru99 == to Guru99: true is Guru99 == to GURU99: false
Magyarázat:
- Az első eredmény igaz logikai értékkel tér vissza. Az azonos tartalmú karakterláncok ugyanabba a karakterlánc-készletbe kerülnek, így a karakterlánc egy címen osztozik.
- A második eredmény hamis logikai értéket ad vissza. Az objektumok eltérő tartalommal rendelkeznek, ami más karakterlánc-készleteket eredményez. Ez azt jelenti, hogy a karakterláncoknak külön objektumhivatkozásaik vannak; így a kimenet hamis.
7. módszer: Egyéni metódus létrehozása két karakterlánc összehasonlításához Java
Hozzon létre egy módszert, amely lexikográfiai sorrendben hasonlít össze két karakterláncot.
Syntax:
public static int compareTwoStrings(String str1, String str2)
Egyedi metódusparaméterek
- str1 – Az összehasonlítandó karakterlánc.
- str2 – Az összehasonlítandó karakterlánc.
Az egyéni metódus visszatér
- 0 – nullát ad vissza, ha az első karakterlánc egyenlő a második karakterlánccal.
- < 0 – Nullánál kisebb számot ad vissza, ha az első karakterlánc kisebb, mint a második karakterlánc.
- > 0 – Nullánál nagyobb számot ad vissza, ha az első karakterlánc nagyobb, mint a második karakterlánc.
Példa:
public class CompareTwoStrings {
public static int compareTwoStrings(String stringOne, String stringTwo) {
int lengthOfStringOne = stringOne.length();
int lengthOfStringTwo = stringTwo.length();
int minStringLength = Math.min(lengthOfStringOne, lengthOfStringTwo);
for (int i = 0; i < minStringLength; i++) {
char stringOneCharValue = stringOne.charAt(i);
char stringTwoCharValue = stringTwo.charAt(i);
if (stringOneCharValue != stringTwoCharValue) {
return stringOneCharValue - stringTwoCharValue;
}
}
if (lengthOfStringOne != lengthOfStringTwo) {
return lengthOfStringOne - lengthOfStringTwo;
} else {
return 0;
}
}
public static void main(String[] args) {
String stringOne = "Guru99";
String stringTwo = "Guru99";
System.out.println("is Guru99 equal to Guru99: " + compareTwoStrings(stringOne, stringTwo));
}
}
Várható teljesítmény:
is Guru99 equal to Guru99: 0
Magyarázat:
Az eredmény nulla értéket adott vissza, ami azt jelenti, hogy az egyéni függvény a várt módon működik.
Összefoglaló:
A Java A két karakterlánc összehasonlítása a következő tényezőktől függ.
- Vágy, hogy uralja a módszerét. Ebben az esetben hozzon létre egy egyéni metódust.
- Nem használhat örökölt kódot. -vel Java 6 és alacsonyabb.
- Optimális teljesítményt nyújtó módszer.
- Az Ön által használt adatok típusa. Például egy karakterlánc egyeztetése változó argumentumok halmazából.
- A kihelyezett könyvtár által biztosított funkciók. Például a StringUtils könyvtár különféle módszereket kínál a karakterláncok összehasonlítására.
