Java-syntaksi: Merkkijonojen muuntaminen numeroiksi

click fraud protection

Tyypillisesti graafinen käyttöliittymä, tulee tekstikenttiä, jotka odottavat käyttäjän syöttävän numeerisen arvon. Tämä lukuarvo päättyy a: ksi jono objekti, joka ei todellakaan auta ohjelmaa, jos haluat tehdä aritmeettista. Onneksi on olemassa kääreluokkia, jotka tarjoavat menetelmiä näiden merkkijonoarvojen muuntamiseksi lukuiksi, ja merkkijono-luokalla on menetelmä muuntaa ne takaisin.

Kääreluokat

primitiiviset tietotyypit, jotka käsittelevät numeroita (ts. tavu, int, kaksinkertainen, kelluva, pitkä ja lyhyt), kaikilla on luokan vastineita. Nämä luokat tunnetaan kääreluokkina, koska ne ottavat primitiivisen tietotyypin ja ympäröivät sitä luokan toiminnallisudella. Esimerkiksi Double-luokalla on kaksinkertainen arvo datanaan ja se tarjoaa menetelmiä kyseisen arvon käsittelemiseksi.

Kaikilla näillä kääreluokilla on menetelmä nimeltään valueOf. Tämä menetelmä ottaa merkkijonon argumenttina ja palauttaa kääreluokan esiintymän. Oletetaan esimerkiksi, että meillä on merkkijono, jonka arvo on kymmenen:

instagram viewer
Merkkijonon numero = "10";

Tämän numeron käyttäminen merkkijonona ei ole meille hyötyä, joten käytämme kokonaislukuluokkaa muuntaaksesi se kokonaislukuobjektiksi:

Kokonaisluku muunnettuNumero = Kokonaisluku.arvoOf (numero);

Nyt numeroa voidaan käyttää numerona eikä merkkijonona:

convertedNumber = muunnettu numero + 20;

Voit myös saada muuntamisen menemään suoraan primitiiviseen tietotyyppiin:

int muunnettu numero = kokonaisluku.arvoOf (numero) .intValue ();

Muiden primitiivisten tietotyyppien tapauksessa sijoitat vain oikean kääreluokan - tavu, kokonaisluku, kaksinkertainen, kelluva, pitkä lyhyt.

Huomautus: Sinun on varmistettava, että merkkijono voidaan jäsentää asianmukaiseen tietotyyppiin. Jos se ei onnistu, joudut suorituksenaikaiseen virheeseen. Yritetään esimerkiksi peittää "kymmenen" kokonaisluvuksi:

Merkkijono = "kymmenen";
int muunnettu numero = kokonaisluku.arvoOf (numero) .intValue ();

tuottaa NumberFormatException, koska kääntäjällä ei ole aavistustakaan, että kymmenen on tarkoitus olla 10.

Hienovaraisemmin sama virhe ilmenee, jos unohdat, että int voi pitää vain kokonaislukuja:

Merkkijonon numero = "10,5";
int muunnettu numero = kokonaisluku.arvoOf (numero) .intValue ();

Kääntäjä ei leikkaa numeroa, vaan ajattelee, että se ei sovi 'int': iin ja että on aika heittää NumberFormatException.

Numeroiden muuntaminen merkkijonoiksi

Numeron tekeminen merkkijonoksi noudattaa samanlaista mallia kuin merkkijono-luokalla on myös valueOf-menetelmä. Se voi ottaa minkä tahansa primitiivisen tietotyyppinumeron argumenttina ja tuottaa merkkijonon:

int-lukuTwenty = 20;

Merkkijono muunnettu = String.valueOf (numeroTwenty);

joka asettaa "20" merkkijonoarvoksi käännettynä.

tai voit käyttää minkä tahansa kääreluokan toString-menetelmää:

Merkkijono muunnettu = Kokonaisluku.String (numeroTwenty);

ToString-menetelmä on yhteinen kaikille objektityypeille - suurimmaksi osaksi se on vain objektin kuvaus. Kääreluokissa tämä kuvaus on niiden sisältämä todellinen arvo. Tähän suuntaan muuntaminen on hiukan vankempi. Jos kaksoisluokkaa haluttiin käyttää kokonaisluvun sijasta:

Merkkijono muunnettu = Double.toSing (numeroTwenty);

tulos ei aiheuttaisi a suorituksenaikainen virhe. Muunnettu muuttuja sisältäisi merkkijonon "20.0".

On myös hienovaraisempi tapa muuntaa numeroita, kun olet liittävät jouset. Jos jouset rakennettaisiin kuten:

Merkkijono aboutDog = "Koirani on" + numeroTwenty + "vuotta vanha.";

int-luvunTwenty muuntaminen tapahtuu automaattisesti.

instagram story viewer