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 |
|---|---|
|
ScannerObjektum létrehozása Sor olvasása a konzolból Ellenőrizze, hogy a karakterlánc patha 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 straz aktuális karakterláncban. Az első előfordulás első karakterének indexét adja vissza. |
|
Megkeresi a karakterláncot straz aktuális karakterláncban, kihagyva az első indexkaraktereket. Az előfordulás indexét adja vissza. |
|
Megkeresi a karakterláncot straz aktuális karakterláncban, a végétől kezdve. Az első előfordulás indexét adja vissza. |
|
Megkeresi a karakterláncot straz aktuális karakterláncban a végétől, az első indexkarakterek 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 oldChara 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 substringmetó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 endIndexnem szerepel az intervallumban. Példák:
| Kód | Eredmény |
|---|---|
|
|
|
|
|
|
|
|
Ha a endIndexparamé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- nidő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 oldChara 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 Stringosztá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