De obicei într-o interfață grafică cu utilizatorul, vor exista câmpuri de text care așteaptă ca utilizatorul să intre într-o valoare numerică. Această valoare a numărului se va încheia într-un obiect String care nu ajută într-adevăr programul dvs. dacă doriți să faceți o aritmetică. Din fericire, există clase de înveliș care furnizează metode pentru a converti acele valori String în numere, iar clasa String are o metodă pentru a le converti din nou.
Tipurile de date primitive care se ocupă de numere (adică, octet, int, dublu, float, lung și scurt) au toate echivalente de clasă. Aceste clase sunt cunoscute sub numele de clase de înveliș, deoarece iau un tip de date primitiv și îl înconjoară cu funcționalitatea unei clase. De exemplu, clasa Double va avea o valoare dublă ca date și va furniza metode pentru manipularea respectivei valori.
Toate aceste clase de înveliș au o metodă numită valueOf. Această metodă ia o stringă ca argument și returnează o instanță a clasei de înveliș. De exemplu, să zicem că avem o șiruri cu valoarea de zece:
Numărul șirului = "10";
Având acest număr ca String nu ne este de folos, așa că folosim clasa Integer pentru a o transforma într-un obiect Integer:
Integer convertNumber = Integer.valueOf (număr);
Acum, numărul poate fi folosit ca număr și nu ca șir de caractere:
convertedNumber = convertitNumăr + 20;
Puteți, de asemenea, să faceți conversia directă către un tip de date primitiv:
int convertNumber = Integer.valueOf (număr) .intValue ();
Pentru alte tipuri de date primitive, trebuie doar să faceți slot în clasa de înveliș corect-Byte, Integer, Double, Float, Long Short.
Notă: Trebuie să vă asigurați că șirul poate fi analizat în tipul de date adecvat. Dacă nu se poate, veți ajunge cu o eroare de execuție. De exemplu, încercarea de a ascunde „zece” într-un număr întreg:
Numărul șirului = „zece”;
int convertNumber = Integer.valueOf (număr) .intValue ();
va produce un NumberFormatException, deoarece compilatorul nu are idee că „zece” se presupune a fi 10.
Mai subtil, aceeași eroare va apărea dacă uitați că un „int” poate reține doar numere întregi:
Numărul șirului = "10.5";
int convertNumber = Integer.valueOf (număr) .intValue ();