Običajno v a grafični uporabniški vmesnik, bodo besedilna polja, ki pričakujejo, da bo uporabnik vnesel številčno vrednost. Ta številčna vrednost bo na koncu a Vrvica predmet, ki v resnici ne pomaga vašemu programu, če želite narediti nekaj aritmetike. Na srečo obstajajo razredi ovojev, ki zagotavljajo metode za pretvorbo teh nizov v niz in razred String ima način, da jih ponovno pretvori nazaj.
Razredi zavijanja
The primitivne vrste podatkov ki se ukvarjajo s števili (tj. byte, int, double, float, long in short), imajo vse razredne ustreznike. Ti razredi so znani kot ovijalni razredi, saj prevzamejo primitivni tip podatkov in ga obdajajo s funkcionalnostjo razreda. Na primer, razred Double ima kot svoje podatke dvojno vrednost in zagotavlja metode za upravljanje te vrednosti.
Vsi ti razredi ovojnic imajo metodo, imenovano valueOf. Ta metoda vzame String kot argument in vrne primerek razreda ovoj. Recimo, da imamo niz z vrednostjo deset:
Nizna številka = "10";
Če imamo to številko kot niz, nam ni v pomoč, zato uporabljamo razred Integer, da jo pretvorimo v objekt Integer:
Integer convertNumber = Integer.valueOf (število);
Zdaj lahko številko uporabite kot številko in ne String:
pretvorjeno število = pretvorjeno število + 20;
Preoblikovanje lahko naredite tudi neposredno v primitivni tip podatkov:
int convertNumber = Integer.valueOf (število) .intValue ();
Pri drugih primitivnih vrstah podatkov preprosto vstavite v ustrezen razred ovoja - bajt, celo število, dvojno, plovec, dolg kratek.
Opomba: Prepričati se morate, da se niz lahko razdeli v ustrezno vrsto podatkov. Če ne uspe, boste na koncu prišlo do napake med izvajanjem. Na primer, poskusite pretvoriti "deset" v celo število:
Nizna številka = "deset";
int convertNumber = Integer.valueOf (število) .intValue ();
bo ustvaril NumberFormatException, ker prevajalnik nima pojma "deset" naj bi bilo 10.
Še bolj subtilno bo prišlo do iste napake, če pozabite, da lahko "int" vsebuje samo cele številke:
Nizna številka = "10,5";
int convertNumber = Integer.valueOf (število) .intValue ();
Prevajalnik ne bo okrnil številke, ampak bo samo mislil, da se ne ujema v "int" in da je čas, da vržete NumberFormatException.
Pretvarjanje števil v strune
Če želite številko pretvoriti v niz, sledi enakem vzorcu, kot ima tudi razred String metoda valueOf. Kot argument lahko vzame katero koli prvotno število podatkovnih vrst in ustvari niz:
int številoTwenty = 20;
Pretvorjeni niz = String.valueOf (številoTwenty);
ki postavi "20" kot String vrednost co nverted.
lahko pa uporabite toString metodo katerega koli od ovojev:
Pretvorjeni niz = Integer.toString (številoTwenty);
Metoda toString je skupna vsem vrstam predmetov - večinoma gre le za opis predmeta. Za razrede ovojev je ta opis dejanska vrednost, ki jo vsebujejo. V tej smeri je pretvorba nekoliko bolj robustna. Če bi namesto Integerja uporabili razred Double:
Pretvorjeni niz = Double.toString (številoTwenty);
rezultat ne bi povzročil a napaka med izvajanjem. Pretvorjena spremenljivka bi vsebovala niz "20.0".
Obstaja tudi bolj subtilen način pretvorbe številk, ko ste povezovalne strune. Če bi niz ustvarili takole:
String aboutDog = "Moj pes je" + številoTvadeset + "let.";
pretvorba int številaTwenty se samodejno opravi.