1. A karakterláncok összehasonlítása
A karakterláncokkal végzett egyik leggyakoribb művelet az összehasonlítás. A String osztály több mint tíz különböző metódussal rendelkezik, amelyek az egyik karakterlánc és a másik karakterlánc összehasonlítására szolgálnak. Az alábbiakban a legfontosabbak közül hétet veszünk szemügyre.
Mód | Leírás |
---|---|
|
A karakterláncok akkor tekinthetők egyenlőnek, ha minden karakterük egyezik. |
|
Összehasonlítja a karakterláncokat, figyelmen kívül hagyva a betűk kis- és nagybetűit (figyelmen kívül hagyja, hogy nagy- vagy kisbetűk-e) |
|
Összehasonlítja a húrokat lexikográfiailag. 0-t ad vissza, ha a karakterláncok egyenlőek. A visszatérési érték kisebb, mint nulla, ha az aktuális karakterlánc kisebb, mint a karakterlánc paraméter. A visszatérési érték nagyobb, mintha az aktuális karakterlánc nagyobb, mint a karakterlánc paraméter. |
|
Lexikográfiailag hasonlítja össze a karakterláncokat, figyelmen kívül hagyva a kis- és nagybetűket. 0-t ad vissza, ha a karakterláncok egyenlőek. A visszatérési érték negatív, ha az aktuális karakterlánc kisebb, mint a karakterlánc paraméter. A visszatérési érték nagyobb, mintha az aktuális karakterlánc nagyobb, mint a karakterlánc paraméter. |
|
Összehasonlítja a húrok részeit |
|
Ellenőrzi, hogy az aktuális karakterlánc a karakterlánccal kezdődik-eprefix |
|
Ellenőrzi, hogy az aktuális karakterlánc véget ér-e a karakterlánccalsuffix |
Tegyük fel, hogy olyan programot akarunk írni, amely elkéri a felhasználótól egy fájl elérési útját, majd ellenőrzi a fájl típusát a kiterjesztése alapján. Egy ilyen program kódja így nézhet ki:
Kód | Megjegyzések |
---|---|
|
Scanner Objektum létrehozása Sor olvasása a konzolból Ellenőrizze, hogy a karakterlánc path a megadott karakterláncra végződik-e |
2. Alkarakterláncok keresése
A karakterláncok összehasonlítása után a második legnépszerűbb művelet az egyik karakterlánc megtalálása a másikban. A String osztálynak van néhány módszere is:
Mód | Leírás |
---|---|
|
Megkeresi a karakterláncot str az aktuális karakterláncban. Az első előfordulás első karakterének indexét adja vissza. |
|
Megkeresi a karakterláncot str az aktuális karakterláncban, kihagyva az első index karaktereket. Az előfordulás indexét adja vissza. |
|
Megkeresi a karakterláncot str az aktuális karakterláncban, a végétől kezdve. Az első előfordulás indexét adja vissza. |
|
Megkeresi a karakterláncot str az aktuális karakterláncban a végétől, az első index karakterek kihagyásával. |
|
Ellenőrzi, hogy az aktuális karakterlánc egyezik-e egy reguláris kifejezés által megadott mintával. |
A indexOf(String)
és indexOf(String, index)
módszereket gyakran kombinálva alkalmazzák. Az első módszer segítségével megtalálhatja az átadott részkarakterlánc első előfordulását az aktuális karakterláncban. A második módszer pedig lehetővé teszi a második, harmadik stb. előfordulások megtalálását az első indexkarakterek kihagyásával.
Tegyük fel, hogy van egy URL-ünk, például " https://domain.com/about/reviews ", és a domain nevet a " codegym.cc " -re szeretnénk cserélni . Az URL-eknek sokféle domain neve lehet, de ismerjük a következőket:
- A domain név előtt két perjel szerepel – "
//
" - A domain nevet egyetlen perjel követi – "
/
"
Így nézne ki egy ilyen program kódja:
Kód | Megjegyzések |
---|---|
|
Szkenner objektum létrehozása Sor olvasása a konzolról A karakterlánc első előfordulásának indexének lekérése " // " Megkapjuk a karakterlánc első előfordulásának indexét / , de csak a karakterek előfordulása után nézzük meg // . Megkapjuk a karakterláncot az elejétől a végéig // A karakterláncot megkapjuk / a végéig. Összefűzzük a karakterláncokat és az új tartományt. |
A lastIndexOf(String)
és lastIndexOf(String, index)
metódusok ugyanúgy működnek, csak a keresés a karakterlánc végétől az elejéig történik.
3. Alkarakterláncok létrehozása
A karakterláncok összehasonlítása és a részkarakterláncok keresése mellett van egy másik nagyon népszerű művelet: a karakterláncból egy részkarakterlánc beszerzése. substring()
Ahogy ez megtörténik, az előző példa egy metódushívást mutatott be , amely egy karakterlánc egy részét adta vissza.
Itt van egy lista 8 metódussal, amelyek az aktuális karakterláncból adják vissza a részkarakterláncokat:
Mód | Leírás |
---|---|
|
Az indextartomány által megadott részkarakterláncot adja vissza beginIndex..endIndex . |
|
Az aktuális karakterláncot n-szer megismétli |
|
Új karakterláncot ad vissza: lecseréli a karaktert oldChar a karakterrenewChar |
|
Lecseréli a reguláris kifejezéssel megadott első részkarakterláncot az aktuális karakterláncban. |
|
Lecseréli az összes olyan részkarakterláncot az aktuális karakterláncban, amely megfelel a reguláris kifejezésnek. |
|
A karakterláncot kisbetűssé alakítja |
|
A karakterláncot nagybetűssé alakítja |
|
Eltávolítja az összes szóközt a karakterlánc elején és végén |
Íme az elérhető módszerek összefoglalása:
substring(int beginIndex, int endIndex)
módszer
A substring
metódus egy új karakterláncot ad vissza, amely az aktuális karakterlánc karaktereiből áll, az indexes karaktertől kezdve beginIndex
és a -ra végződően endIndex
. Mint minden Java intervallum esetében, az indexet tartalmazó karakter endIndex
nem szerepel az intervallumban. Példák:
Kód | Eredmény |
---|---|
|
|
|
|
|
|
|
|
Ha a endIndex
paraméter nincs megadva (ami lehetséges), akkor a részkarakterlánc a beginIndex karakterétől a karakterlánc végéig kerül.
repeat(int n)
módszer
Az ismétlési módszer egyszerűen megismétli az aktuális karakterlánc- n
időket. Példa:
Kód | Eredmény |
---|---|
|
|
|
|
|
|
|
|
replace(char oldChar, char newChar)
módszer
A replace()
metódus egy új karakterláncot ad vissza, amelyben az összes karaktert oldChar
a karakter helyettesíti newChar
. Ez nem változtatja meg a karakterlánc hosszát. Példa:
Kód | Eredmény |
---|---|
|
|
|
|
|
|
|
|
replaceFirst()
és replaceAll()
módszerek
A replaceAll()
metódus az egyik részkarakterlánc minden előfordulását lecseréli egy másikra. A replaceFirst()
metódus lecseréli az átadott részkarakterlánc első előfordulását a megadott részkarakterláncra. A lecserélendő karakterláncot reguláris kifejezés határozza meg. A Java Multithreading küldetés reguláris kifejezéseivel foglalkozunk .
Példák:
Kód | Eredmény |
---|---|
|
|
|
|
|
|
|
|
toLowerCase() and toUpperCase()
mód
Ezeket a metódusokat akkor ismertük meg, amikor először megismertük az String
osztály metódusainak meghívását.
trim()
módszer
A trim()
módszer eltávolítja a bevezető és a záró szóközt a karakterláncból. Nem érinti meg a karakterláncon belüli szóközöket (azaz nem az elején vagy a végén). Példák:
Kód | Eredmény |
---|---|
|
|
|
|
|
|
|
|
GO TO FULL VERSION