"Mit gondolsz, Amigo? Melyik a legnépszerűbb Java osztály az int után?"
– Már adtál nekem egy spoilert a lecke címében, Ellie. Ez az String
!
"Valóban, ez egy spoiler. String
abszolút mindenhol használják. Van egy csomó hasznos módszer, amelyeket jobb, ha ismer.
"Az String
osztály az egyetlen olyan osztály a primitív típusokon kívül, amelyek literáljai használhatók egy utasításban switch
; a fordító speciális módon kezeli a karakterlánc-összeadást és a String objektumokat; String
az objektumok különleges módon tárolódnak a memóriában. Az String
osztály alapvetően egy nagyon speciális osztály.
"Az String
osztálynak van egy csomó segítő osztálya is, amelyek célja, hogy tovább egyszerűsítsék a stringekkel való munkát Java-ban. Ha mindezt megtanulod, sok minden sokkal könnyebbé válik."
– Alig várom.
"Nos, kezdjük ennek az ökoszisztémának a magjától – az String
osztály szervezetétől. Az osztály szerkezete String
valójában nagyon egyszerű: benne van egy karaktertömb ( char
tömb), amely a karakterlánc összes karakterét tárolja. Például a „Hello” szó tárolása így történik:
Ez fontos.
Valójában ez nem egészen pontos. Mivel az String
osztály nagyon fontos, rengeteg optimalizálást használ, és az adatokat belsőleg nem karaktertömbként, hanem egyszerűen bájttömbként tárolják.
A String osztály módszerei
Az String
osztálynak nagyon sok metódusa van: csak 18 konstruktora van! Tehát az alábbiakban csak a leggyakrabban használtakat sorolom fel:
Mód | Leírás |
---|---|
|
A karakterláncban lévő karakterek számát adja vissza |
|
Ellenőrzi, hogy a karakterlánc üres-e |
|
Ellenőrzi, hogy a karakterlánc csak szóköz karaktereket tartalmaz-e: szóköz, tabulátor, új sor stb. |
|
A karakterlánc indexpozíciójában lévő karaktert adja vissza. |
|
A karakterláncot alkotó karakterek tömbjét (másolatát) adja vissza |
|
Egy karakterláncot bájtok halmazává alakít, és visszaadja a bájtok tömbjét. |
|
Egy karakterláncot több részkarakterláncra oszt fel. |
|
Több részkarakterláncot egyesít |
|
Húrt helyez a húrmedencébe. |
– Ez nagyon jól néz ki!
"Írjunk egy programot, amely a fájl elérési útját Unix stílusról Windows stílusra konvertálja. A Unix a /
karaktert használja a mappák elválasztására, míg a Windows a \
karaktert.
Megoldás 1.char
Tömb használata
Kód | Megjegyzések |
---|---|
|
Lapolvasó objektum létrehozása Sor olvasása a konzolról Karaktertömb átalakítása Karaktertömbbé Karakterek áthurkolása Ha a karakter az / , cserélje ki a karakterrel \ . Ne felejtsd el a menekülést. Hozzon létre egy új karakterláncot a karaktertömb alapján. Jelenítse meg a karakterláncot. |
2. megoldás.split()
A és join()
módszerek használatával :
Kód | Megjegyzések |
---|---|
|
Szkenner objektum létrehozása Olvasson be egy sort a konzolról Karakterlánc konvertálása karakterláncok tömbjévé . A / karaktert elválasztóként használják (a további két perjel dupla kilépés eredménye). Összefűzze a karakterláncok tömbjében lévő összes karakterláncot . A -t \ elválasztóként használják (úgy látjuk, hogy megszökött). Jelenítse meg a karakterláncot. |
3. megoldás. A módszer használata replace(char oldChar, char newChar)
:
Kód | Megjegyzések |
---|---|
|
Szkenner objektum létrehozása Sor olvasása a konzolról Egyszerűen cserélje ki az egyik karaktert egy másikra (a második kihagyott) Jelenítse meg a karakterláncot. |
"A harmadik megoldás tetszett a legjobban. De mind a hármat gyakorolni fogom."
"Jó volt, Amigo. Látom, hogy már türelmetlen vagy, hogy a gyakorlatba ültesd az új tudásodat. A lecke véget ért."
GO TO FULL VERSION