STRING STATINIAI METODAI
Java String valueOf() metodas
String.valueOf() paverčia skirtingų tipų reikšmes į tekstą. Jį galima naudoti su skaičiais, loginėmis reikšmėmis, simboliais, objektais ir char masyvais.
Skaičiaus pavertimas tekstu
int taskai = 42;
String tekstas = String.valueOf(taskai);
System.out.println(tekstas);
System.out.println(tekstas + " taškai");42
42 taškai
- Kintamasis
taskaiyrainttipo skaičius. String.valueOf(taskai)sukuria tekstinę šio skaičiaus išraišką.- Rezultatas saugomas
Stringkintamajametekstas. - Nuo šios vietos reikšmę galima jungti su kitu tekstu kaip įprastą
String.
Kodėl valueOf() yra statinis metodas?
valueOf() kviečiamas per klasę String, nes metodas kuria tekstą iš perduotos reikšmės ir jam nereikia jau turimo String objekto:
String tekstas = String.valueOf(123);
Kairėje esantis String yra rezultato tipas. String prieš tašką yra klasė, kuriai priklauso statinis metodas.
Metodo sintaksė
| Sintaksė | Paskirtis |
|---|---|
valueOf(int i) | Paverčia sveikąjį skaičių į tekstą. |
valueOf(long l) | Paverčia didesnį sveikąjį skaičių į tekstą. |
valueOf(float f) | Paverčia float reikšmę į tekstą. |
valueOf(double d) | Paverčia double reikšmę į tekstą. |
valueOf(boolean b) | Grąžina tekstą true arba false. |
valueOf(char c) | Paverčia vieną simbolį į vieno simbolio tekstą. |
valueOf(Object obj) | Naudoja objekto toString() rezultatą arba tekstą null. |
valueOf(char[] data) | Sukuria tekstą iš viso simbolių masyvo. |
valueOf(char[] data, int offset, int count) | Sukuria tekstą iš pasirinktos simbolių masyvo dalies. |
Nors metodas turi daug perkrovų, mokantis svarbiausia idėja viena: perduota reikšmė paverčiama į naują String.
Primityviųjų reikšmių pavertimas
boolean aktyvus = true;
char raide = 'J';
double kaina = 3.99;
System.out.println(String.valueOf(aktyvus));
System.out.println(String.valueOf(raide));
System.out.println(String.valueOf(kaina));true
J
3.99
booleanreikšmė tampa tekstu true arba false.charreikšmė tampa vieno simbolioString.- Skaičius tampa tekstine skaičiaus išraiška, bet tai nėra skaičių formatavimo metodas.
Objekto pavertimas tekstu
class Vartotojas {
private final String vardas;
Vartotojas(String vardas) {
this.vardas = vardas;
}
@Override
public String toString() {
return "Vartotojas: " + vardas;
}
}
Vartotojas vartotojas = new Vartotojas("Ieva");
String tekstas = String.valueOf(vartotojas);
System.out.println(tekstas);Vartotojas: Ieva
Kai perduodamas objektas, String.valueOf(objektas) naudoja objekto toString() rezultatą. Dėl to klasėse verta perrašyti toString(), jei objektai bus rodomi tekstu, žurnaluose ar diagnostikoje.
null pavertimas tekstu
Object pasirinkimas = null;
String tekstas = String.valueOf(pasirinkimas);
System.out.println(tekstas);null
Jei Object reikšmė yra null, String.valueOf() nesukelia NullPointerException. Vietoje to metodas grąžina tekstą null. Tai skiriasi nuo tiesioginio pasirinkimas.toString(), kuris per null nuorodą neveiktų.
char masyvo pavertimas tekstu
char[] raides = {'J', 'a', 'v', 'a'};
String tekstas = String.valueOf(raides);
System.out.println(tekstas);Java
Su char[] masyvu valueOf() veikia panašiai kaip copyValueOf(): simboliai nukopijuojami į naują nekintamą String.
Tik dalies char masyvo pavertimas
char[] zinute = {'K', 'u', 'r', 's', 'a', 's', ':', ' ', 'J', 'a', 'v', 'a'};
String dalis = String.valueOf(zinute, 8, 4);
System.out.println(dalis);Java
- Masyve yra tekstas Kursas: Java.
offsetreikšmė8nurodo pradėti nuo simbolioJ.countreikšmė4nurodo paimti keturis simbolius.- Rezultatas yra naujas tekstas Java.
valueOf() ir jungimas su tuščiu tekstu
int lygis = 5;
String suTusciuTekstu = "" + lygis;
String suValueOf = String.valueOf(lygis);
System.out.println(suTusciuTekstu);
System.out.println(suValueOf);5
5
Abi eilutės duoda tą patį matomą rezultatą, tačiau String.valueOf(lygis) aiškiau pasako, kad tikslas yra reikšmės pavertimas tekstu. Tuščio teksto jungimas dažnai atsiranda greituose pavyzdžiuose, bet mokomajame ar komandos kode aiškus metodas lengviau skaitomas.
valueOf() nėra formatavimas
String.valueOf() sukuria paprastą tekstinę reikšmės išraišką. Jei reikia kontroliuoti skaitmenų po kablelio kiekį, lygiavimą, procentus ar lokalę, naudok String.format().
String.valueOf(3.5) grąžina 3.5, o String.format("%.2f", 3.5) gali grąžinti 3.50.
Dažnos klaidos
char[] raides = {'J', 'a', 'v', 'a'};
String tekstas = String.valueOf(raides, 2, 5);
System.out.println(tekstas);IndexOutOfBoundsException
- Su
char[]dalimioffset + countperžengia masyvo ribas. - Neigiamas
offsetarbacountyra netinkamas. - Tikimasi specialaus skaičių formatavimo, nors
valueOf()tik paverčia reikšmę tekstu. - Manoma, kad
nullobjektas bus tuščias tekstas, nors rezultatas yra null. - Objektas neturi prasmingo
toString(), todėl gaunamas techninis klasės pavadinimas ir hash reikšmė.
Kada naudoti String.valueOf()?
String.valueOf() naudok tada, kai reikia aiškiai paversti reikšmę į String: ruošiant tekstą išvedimui, jungiant reikšmes su tekstu, saugant paprastą tekstinę formą arba saugiai apdorojant galimą null objektą.

