Tipično u a grafičko korisničko sučelje, pojavit će se tekstna polja koja očekuju od korisnika da unese numeričku vrijednost. Ova brojčana vrijednost završit će se sa a Niz objekt koji zaista ne pomaže vašem programu ako želite napraviti neku aritmetiku. Srećom, postoje klase omota koji pružaju metode za pretvaranje tih String vrijednosti u brojeve, a klasa String ima metodu njihovog ponovnog pretvaranja.
Klase omotača
primitivne vrste podataka koji se bave brojevima (tj. byte, int, double, float, long i short) svi imaju ekvivalente klase. Te su klase poznate kao klase omota jer uzimaju primitivni tip podataka i okružuju ga funkcionalnošću klase. Na primjer, Double klasa imat će dvostruku vrijednost kao svoje podatke i pružiti metode za upravljanje tom vrijednošću.
Sve ove klase omota imaju metodu koja se naziva valueOf. Ova metoda uzima String kao argument i vraća instancu klase omota. Na primjer, recimo da imamo string u vrijednosti deset:
Broj niza = "10";
Imati ovaj broj kao string nije nam korisno, pa koristimo klasu Integer da ga pretvorimo u objekt Integer:
Integer convertNumber = Integer.valueOf (broj);
Sada se broj može koristiti kao broj, a ne kao niz:
convertNumber = pretvorenoNumber + 20;
Konverziju možete učiniti i izravno u primitivni tip podataka:
int convertNumber = Integer.valueOf (broj) .intValue ();
Za ostale primitivne vrste podataka samo ćete uložiti u ispravnu klasu omota - bajt, cjelobrojni, dvostruki, plutajući, dugi kratki.
Bilješka: Morate biti sigurni da se string može raščlaniti u odgovarajuću vrstu podataka. Ako ne može, na kraju ćete pogriješiti tijekom izvođenja. Na primjer, pokušajte "deset" pretvoriti u cijeli broj:
String number = "deset";
int convertNumber = Integer.valueOf (broj) .intValue ();
proizvest će NumberFormatException jer prevoditelj nema pojma "deset" bi trebalo biti 10.
Suptilnije će se dogoditi ista pogreška ako zaboravite da "int" može sadržavati samo cijele brojeve:
Broj niza = "10,5";
int convertNumber = Integer.valueOf (broj) .intValue ();
Prevoditelj neće skratiti broj, samo će misliti da se ne uklapa u "int" i da je vrijeme da bacate NumberFormatException.
Pretvaranje brojeva u žice
Za unos broja u nizu slijedi se isti obrazac kao i klasa String. Može uzeti bilo koji od primitivnih brojeva vrsta podataka kao argument i proizvesti niz:
int brojTwenty = 20;
Pretvoreni niz = String.valueOf (numberTwenty);
koja stavlja "20" kao String vrijednost kovertiranog.
ili možete koristiti toString metodu bilo koje klase omota:
Pretvoreni niz = Integer.toString (brojTwenty);
ToString metoda je zajednička za sve vrste objekata - uglavnom je to samo opis objekta. Za klase omota, ovaj je opis stvarna vrijednost koju sadrže. U tom je smjeru pretvorba malo robusnija. Ako se umjesto Integer koristi dvostruka klasa:
Pretvoreni niz = Double.toString (brojTwenty);
rezultat ne bi izazvao a greška u vremenu izvođenja. Pretvorena varijabla sadržavala bi string "20.0".
Postoji i suptilniji način pretvaranja brojeva kad ste udružujuće žice. Ako bi se niz stvorio poput:
String aboutDog = "Moj pas ima" + brojDvadeset + "godina.";
pretvaranje int brojaTwenty se automatski vrši.