1. Structura String
clasei
Astăzi vom vorbi despre String
clasă. După ints, clasa String este cea mai populară clasă din Java. Este folosit absolut peste tot. Are o grămadă de metode utile pe care ar fi mai bine să le cunoașteți.
Clasa String
este singura clasă în afară de tipurile primitive ale căror literali pot fi utilizați într-o switch
instrucțiune; compilatorul gestionează adăugarea șirurilor și obiectele String într-un mod special; String
obiectele sunt povestite în memorie într-un mod special. Practic, String
clasa este o clasă foarte specială.
De asemenea, String
clasa are o grămadă de clase de ajutor al căror scop este de a simplifica ș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 pentru tine. Ei bine, vom începe de la miezul acestui ecosistem - organizarea clasei String
.
Matrice de caractere
Structura clasei String
este de fapt foarte simplă: în interiorul acesteia se află o matrice de caractere (char array) care stochează toate caracterele șirului. De exemplu, așa este stocat cuvântul „Bună ziua”:
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.
2. Metode ale String
clasei
Clasa String
are o mulțime de metode: are doar 18 constructori! Deci, mai jos le menționăm doar pe cele mai elementare dintre ele:
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 la poziția de index 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 o sfoară în string pool . |
Puteți afla mai multe despre constructori în articolul Constructori Java .
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 matrice char
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()
șijoin()
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. |
GO TO FULL VERSION