Java süntaks: stringide teisendamine numbriteks

Tavaliselt a graafiline kasutajaliides, kuvatakse tekstiväljad, millelt kasutaja eeldab numbrilise väärtuse sisestamist. Selle numbri väärtus jõuab a-ni Keel objekt, mis ei aita tegelikult teie programmi, kui soovite teha mõnda aritmeetikat. Õnneks on olemas ümbrisklassid, mis pakuvad meetodeid nende Stringi väärtuste arvuks teisendamiseks ja Stringi klassil on meetod nende uuesti teisendamiseks.

Kääri klassid

primitiivsed andmetüübid mis käsitlevad numbreid (st bait, int, topelt, hõljumine, pikk ja lühike), kõigil on klassi ekvivalendid. Neid klasse tuntakse ümbriste klassidena, kuna need võtavad primitiivse andmetüübi ja ümbritsevad seda klassi funktsionaalsusega. Näiteks topeltklassil on oma andmetena topeltväärtus ja see pakub meetodeid selle väärtusega manipuleerimiseks.

Kõigil neil ümbrisklassidel on meetod nimega valueOf. See meetod võtab stringi argumendina ja tagastab ümbrisklassi eksemplari. Oletagem näiteks, et meil on string väärtusega kümme:

Keelunumber = "10";

Selle numbri olemasolu stringina ei ole meile kasulik, seetõttu kasutame täisarvu klassi teisendamiseks täisarvu objektiks täisarvu klassi:

instagram viewer

Täisarv konverteeritud arv = täisarv.väärtusOf (arv);

Nüüd saab numbrit kasutada numbrina, mitte stringina:

teisendatud arv = teisendatud arv + 20;

Samuti saate muuta konverteerimise otse primitiivseks andmetüübiks:

int convertedNumber = täisarv.valueOf (arv) .intValue ();

Teiste primitiivsete andmetüüpide puhul paigutate lihtsalt õige ümbrisklassi - bait, täisarv, kahekordne, hõljumine, pikk lühike.

Märge: Peate veenduma, et stringi saab sõeluda sobivasse andmetüüpi. Kui see ei õnnestu, on teil käitusaegne tõrge. Näiteks üritatakse varjata "kümme" täisarvuks:

Keelunumber = "kümme";
int convertedNumber = täisarv.valueOf (arv) .intValue ();

loob NumberFormatException, kuna kompilaatoril pole aimugi, et "kümme" peaks olema 10.

Täpsemalt öeldes ilmneb sama tõrge, kui unustate, et int võib hoida ainult täisarvu:

Keelunumber = "10,5";
int convertedNumber = täisarv.valueOf (arv) .intValue ();

Kompilaator ei kärbi numbrit, vaid arvab, et see ei sobi "int" -i ja on aeg visata numberFormatException.

Numbrite teisendamine stringideks

Numbri tegemine stringiks järgib samasugust mustrit, nagu ka keelpilliklassil on väärtusOf-meetod. See võib võtta argumendina ükskõik millise primitiivse andmetüübi numbri ja anda stringi:

int numberTwenty = 20;

String teisendatud = String.valueOf (numberTwenty);

mis seab nullväärtusena väärtuseks "20".

või võite kasutada mis tahes ümbrisklassi meetodit toString:

String teisendatud = täisarv.toString (number kakskümmend);

ToStringi meetod on ühine kõigile objekti tüüpidele - enamasti on see vaid objekti kirjeldus. Pakkeklasside puhul on see kirjeldus nende sisalduv tegelik väärtus. Selles suunas on teisendus pisut jõulisem. Kui täisarvu asemel tuleks kasutada Double-klassi:

Keel teisendatud = Double.toString (numberTwenty);

tulemus ei põhjusta a käitustõrge. Teisendatud muutuja sisaldaks stringi "20.0".

Samuti on peenem viis numbrite teisendamiseks, kui olete ühendavad keelpillid. Kui keelpill peaks olema ehitatud järgmiselt:

String aboutDog = "Minu koer on" + number kakskümmend + "aastat vana.";

int numberTwenty teisendamine toimub automaatselt.