1. Modificarea șirurilor
În Java, șirurile sunt obiecte imuabile. Acest lucru a fost făcut pentru a face clasa String extrem de optimizată și pentru a permite să fie folosită peste tot. De exemplu, numai tipurile imuabile sunt recomandate pentru utilizare ca chei în colecția HashMap .
Cu toate acestea, apar adesea situații când programatorii ar considera că este mai convenabil ca String
clasa să fie mutabilă. Ei vor o clasă care să nu creeze un subșir nou de fiecare dată când una dintre metodele sale este apelată.
Ei bine, să presupunem că avem un șir foarte mare și trebuie să adăugăm frecvent ceva la sfârșitul acestuia. În acest caz, chiar și o colecție de caractere ( ArrayList<Character>
) poate fi mai eficientă decât recrearea și concatenarea constantă a obiectelor String.
Tocmai de aceea, la limbajul Java a fost adăugat un tip de tip String care poate fi schimbat. Se numește StringBuilder
.
Crearea unui obiect
Pentru a crea un StringBuilder
obiect bazat pe un șir existent, trebuie să executați o instrucțiune ca:
StringBuilder name = new StringBuilder(string);
Pentru a crea un șir mutabil gol, trebuie să utilizați o declarație ca aceasta:
StringBuilder name = new StringBuilder();
Lista metodelor
Clasa StringBuilder
are două duzini de metode utile. Iată cele mai importante:
Metodă | Descriere |
---|---|
|
Convertește obiectul transmis într-un șir și îl adaugă șirului curent |
|
Convertește obiectul transmis într-un șir și îl inserează în șirul curent |
|
Înlocuiește partea de șir specificată de intervalul start..end cu șirul trecut |
|
Îndepărtează caracterul cu indexul specificat din șir |
|
Elimină caracterele din intervalul specificat din șir |
|
Caută un subșir în șirul curent |
|
Caută un subșir în șirul curent, începând de la sfârșit |
|
Returnează caracterul din șir la indexul trecut |
|
Returnează subșirul definit de intervalul specificat |
|
Inversează șirul curent. |
|
Schimbă caracterul de la indexul specificat în caracterul transmis |
|
Returnează lungimea șirului în caractere |
Iată o scurtă descriere a fiecărei metode
2. Descrierea metodelor:
Adăugarea unui șir
Pentru a adăuga ceva la un șir mutabil ( StringBuilder
), utilizați append()
metoda. Exemplu:
Cod | Descriere |
---|---|
|
|
Conversia într-un șir standard
Pentru a converti un StringBuilder
obiect într-un obiect String, trebuie doar să îi apelați toString()
metoda. Exemplu
Cod | Ieșire |
---|---|
|
|
Cum șterg un personaj?
Pentru a șterge un caracter dintr-un șir mutabil, trebuie să utilizați deleteCharAt()
metoda. Exemplu:
Cod | Ieșire |
---|---|
|
|
Cum înlocuiesc o parte dintr-un șir cu un alt șir?
Pentru aceasta există replace(int begin, int end, String str)
metoda. Exemplu:
Cod | Ieșire |
---|---|
|
|
3. Exemple utile de lucru cu șiruri
Cum inversez un șir?
Există o metodă specială pentru a face acest lucru — reverse()
; Exemplu:
Cod | Ieșire |
---|---|
|
|
StringBuffer
clasă
Există o altă clasă — StringBuffer, care este un analog al StringBuilder
clasei, dar metodele sale sunt marcate cu synchronized
modificatorul. Înseamnă că StringBuffer
obiectul poate fi accesat simultan din mai multe fire.
Dar este mult mai lent decât StringBuilder
. Este posibil să aveți nevoie de această clasă când începeți să explorați activ multithreading în misiunea Java Multithreading .
GO TO FULL VERSION