
Știi cum se convertește un număr de tipul int într-un șir de tipul String? Nu e nimic complicat! În cadrul acestui articol vei descoperi mai multe metode care mai de care mai interesante.
Vei întâlni foarte des situații în care trebuie să convertești o valoare de un anumit tip într-un alt tip.
Să zicem că ai următoarele variabile definite. Ce afișează următorul cod?
int a = 123; String b = "123"; int c = a + b; String d = a + b; // urmează să afișăm rezultatele System.out.println(c); System.out.println(d);
Programul va returna o eroare începând cu linia a 3-a. Nu poți să faci o adunare între un număr întreg și un șir de caractere!
Ce trebuie să faci în acest caz? Să te folosești de anumite funcții speciale de convertire.
Metoda toString(…) 🔗
Ce face metoda toString(…)? Așa cum îi spune și numele, convertește numărul din paranteză în tipul String.
Aici ai nevoie de clasa Integer. Îți recomand articolul „O clasă în Java” pentru a învăța ce este o clasă.
Cum se folosește metoda toString(…)? Sunt 2 variante:
- fie scrii clasa, atașezi metoda și pui în interior numărul pe care-l vrei convertit. Exemplu: Integer.toString(123);
- fie declari un nou obiect căruia îi atribui variabila pe care vrei să o convertești. Exemplu:
int a = 123; Integer b = new Integer(a); System.out.println(Integer.toString(b));
Metoda valueOf(…) 🔗
Folosește metoda valueOf(…) atașată de clasa String. Această metodă pare mai simplă. Exemplu:
int a = 123; System.out.println(String.valueOf(a)); /* afișează "123" (ca șir de caractere) */
„Metoda” concatenării 🔗
Ce reprezintă „metoda” concatenării? Am pus cuvântul „metodă” între ghilimele pentru că nu este chiar o metodă, ci un concept în sine foarte dezvoltat, utilizat la îmbinarea șirurilor de caractere. Vezi articolul „Concatenarea în Java”.
Practic, dacă pui un șir de caractere (între ghilimele duble) la început, chiar dacă adaugi apoi numere, întregul rezultat va fi un șir de caractere. Exemplu:
int a = 123;
int b = 321;
System.out.println("" + a + b);
// afișează "123321"
De ce programul anterior afișează șirul „123321”? Pentru că la început avem un șir de caractere de lungimea 0 (zero), care este adăugat următoarelor componente, adică variabilelor a și b.
Variabilele a și b nu mai sunt eligibile pentru a fi calculate din punct de vedere matematic, deoarece întregul rezultat va fi un șir de caractere. E ca și cum vrei să te dai jos din gară la Oradea, dar trenul nu oprește până la Brașov (și ți s-a spus asta înainte să te urci în tren…). Glumesc… E prea de tot analogia…
Hai să-ți dau alte exemple ca să înțelegi mai clar. Dacă aveai suma lui a și b înaintea șirului (gol) de caractere, atunci se făcea suma, apoi se transforma totul în șir.
int a = 10;
int b = 20;
System.out.println("" + a + b);
// afișează "1020"
System.out.println(a + b + "");
/* se face calculul 10 + 20,
apoi se trece la convertirea
în tipul String: "30"
*/
System.out.println(b + "" + a);
// se convertește direct: "2010"
Concatenarea mi se pare metoda cea mai simplă și mai „ieftină” dintre toate. Bineînțeles că mai sunt câteva metode, dar nu le voi enumera pentru că nu merită, momentan.
Așadar, cum convertești un număr de tipul int în tipul String? Ai la îndemână 3 metode. Alege-o pe cea mai bună!
Învață să fii profesionist!