"Ce crezi, Amigo? Care este cea mai populară clasă Java după int?"
„Mi-ai dat deja un spoiler în titlul lecției, Ellie. Este String
!”
„Într-adevăr, este un spoiler. String
este folosit absolut peste tot. Are o grămadă de metode utile pe care e mai bine să le cunoști.
„ String
Clasa este singura clasă, alta decât tipurile primitive, ale cărei literale pot fi folosite într-o switch
instrucțiune; compilatorul gestionează adăugarea șirurilor și obiectele String într-un mod special; String
obiectele sunt stocate în memorie într-un mod special. Practic, clasa String
este un clasa speciala.
„De asemenea, String
clasa are o grămadă de clase de ajutor al căror scop este să simplifice și mai mult lucrul cu șiruri de caractere în Java. Când înveți toate acestea, multe lucruri vor deveni cu adevărat mult mai ușor de făcut pentru tine.”
"Nu pot să aștept."
„Ei bine, vom începe de la miezul acestui ecosistem – organizarea clasei String
. Structura clasei String
este de fapt foarte simplă: în interiorul ei se află o matrice de caractere ( char
array) care stochează toate caracterele șirului. Pentru exemplu, așa este stocat cuvântul „Bună ziua”:
Este important.
De fapt, acest lucru nu este tocmai exact. Deoarece String
clasa este foarte importantă, folosește o mulțime de optimizări, iar datele sunt stocate intern nu ca o matrice de caractere, ci pur și simplu ca o matrice de octeți.
Metode din clasa String
Clasa String
are o mulțime de metode: are doar 18 constructori! Deci, mai jos le voi enumera doar pe cele mai frecvent utilizate:
Metode | Descriere |
---|---|
|
Returnează numărul de caractere din șir |
|
Verifică dacă șirul este un șir gol |
|
Verifică dacă șirul conține doar caractere cu spații albe: spațiu, tab, linie nouă etc. |
|
Returnează caracterul de la poziția indexului din șir. |
|
Returnează o matrice de caractere (o copie) care alcătuiesc șirul |
|
Convertește un șir într-un set de octeți și returnează matricea de octeți. |
|
Împarte un șir în mai multe subșiruri. |
|
Unește mai multe subșiruri împreună |
|
Pune un șir în pool-ul de șiruri. |
— Asta arată foarte bine!
„Să scriem un program care convertește o cale de fișier din stilul Unix în stilul Windows. Unix folosește caracterul /
pentru a separa folderele, în timp ce Windows folosește caracterul \
.
Soluția 1. Folosind o char
matrice
Cod | Note |
---|---|
|
Creați un obiect Scanner Citiți o linie din consolă Convertiți un șir într-o matrice de caractere Buclă peste caractere Dacă caracterul este / , înlocuiți-l cu \ . Nu uita de evadare. Creați un șir nou pe baza matricei de caractere. Afișați șirul. |
Soluția 2. Folosind metodele split()
și join()
:
Cod | Note |
---|---|
|
Creați un obiect Scanner Citiți o linie din consolă Convertiți șirul într-o matrice de șiruri . Caracterul / este folosit ca separator (cele două bare oblice suplimentare sunt rezultatul unei duble evadari). Concatenează toate șirurile din matricea de șiruri . Este \ folosit ca separator (vedem că a scăpat). Afișați șirul. |
Soluția 3. Folosind replace(char oldChar, char newChar)
metoda:
Cod | Note |
---|---|
|
Creați un obiect Scanner Citiți o linie din consolă Înlocuiți pur și simplu un caracter cu altul (al doilea este escape) Afișați șirul. |
"Cel mai mult mi-a plăcut a treia soluție. Dar le voi exersa pe toate trei."
"Bravo, Amigo. Văd că deja ești nerăbdător să-ți pui noile cunoștințe în practică. Lecția s-a terminat."
GO TO FULL VERSION