STRING STATINIAI METODAI
Java String copyValueOf() metodas
String.copyValueOf() nukopijuoja char masyvo simbolius ir iš jų sukuria naują String. Galima kopijuoti visą masyvą arba tik pasirinktą jo dalį.
Kodėl tai statinis metodas?
Metodas kviečiamas per klasės pavadinimą String, nes jam nereikia jau sukurto teksto objekto:
String tekstas = String.copyValueOf(raides);
String kairėje yra grąžinamos reikšmės tipas. Antrasis String prieš tašką yra klasė, kuriai priklauso statinis metodas. Rašyti tekstas.copyValueOf(...) nereikia.
Viso char masyvo kopijavimas
char[] raides = {'L', 'a', 'b', 'a', 's'};
String tekstas = String.copyValueOf(raides);
System.out.println(tekstas);Labas
char[]masyvas saugo penkis atskirus simbolius.String.copyValueOf(raides)perskaito visus masyvo elementus.- Simboliai ta pačia tvarka nukopijuojami į naują
String. println()parodo vientisą tekstą Labas.
Dvi metodo versijos
| Sintaksė | Paskirtis |
|---|---|
copyValueOf(char[] data) | Nukopijuoja visus masyvo simbolius. |
copyValueOf(char[] data, int offset, int count) | Kopijuoja count simbolių, pradėdamas nuo indekso offset. |
Abi versijos grąžina naują String objektą. Šie metodai veikia taip pat kaip atitinkamos String.valueOf(char[]) versijos.
Tik pasirinktos dalies kopijavimas
char[] uzrasas = {'P', 'i', 'e', 't', 'ū', 's', ':', ' ', '1', '2'};
String zodis = String.copyValueOf(uzrasas, 0, 6);
System.out.println(zodis);Pietūs
- Masyve yra visas užrašas Pietūs: 12.
offsetreikšmė0reiškia, kad kopijuoti pradedama nuo pirmo simbolio.countreikšmė6nurodo nukopijuoti šešis simbolius.- Dvitaškis, tarpas ir skaitmenys lieka už pasirinkto intervalo ribų.
offset nėra pabaigos indeksas
char[] tekstas = {'A', 'B', 'C', 'D', 'E'};
String dalis = String.copyValueOf(tekstas, 1, 3);
System.out.println(dalis);BCD
Skaičius 1 yra pradžios indeksas, todėl pirmasis kopijuojamas simbolis yra B. Skaičius 3 yra simbolių kiekis, o ne pabaigos indeksas, todėl nukopijuojami B, C ir D.
Sukurtas String nuo masyvo nebepriklauso
char[] raides = {'k', 'a', 'v', 'a'};
String zodis = String.copyValueOf(raides);
raides[0] = 's';
System.out.println(raides);
System.out.println(zodis);sava
kava
- Iš pradžių masyvas sudaro žodį kava.
copyValueOf()nukopijuoja simbolius į naująString.- Vėliau pirmasis masyvo simbolis pakeičiamas iš
kįs. - Masyvas tampa sava, tačiau anksčiau sukurtas nekintamas
Stringlieka kava.
Dažnos klaidos
- Perdavus
nullvietoje masyvo, įvykstaNullPointerException. - Neigiamas
offsetarcountyra netinkamas. - Jei
offset + countperžengia masyvo ribą, įvykstaIndexOutOfBoundsException. - Metodas priima
char[], o neString[]ar kitokio tipo masyvą.
Kada naudoti copyValueOf()?
Metodas naudingas, kai tekstą gauni kaip keičiamą char masyvą ir nori sukurti nuo jo nepriklausomą, nekintamą String. Kasdieniame kode dažniau sutiksi String.valueOf(char[]) arba konstruktorių new String(char[]); copyValueOf() suteikia tą pačią aiškią kopijavimo prasmę.

