Ny

Hur man konverterar strängar till siffror och vice versa i Java

Hur man konverterar strängar till siffror och vice versa i Java


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

I ett grafiskt användargränssnitt kommer det vanligtvis att finnas textfält som förväntar sig att användaren ska ange ett numeriskt värde. Detta talvärde hamnar i ett String-objekt som inte riktigt hjälper ditt program om du vill göra lite aritmetik. Lyckligtvis finns det omslagsklasser som tillhandahåller metoder för att konvertera dessa strängvärden till siffror och String-klassen har en metod för att konvertera dem tillbaka igen.

Inslagningskurser

De primitiva datatyperna som hanterar siffror (dvs byte, int, dubbel, flyta, lång och kort) har alla klassekvivalenter. Dessa klasser är kända som omslagsklasser eftersom de tar en primitiv datatyp och omger den med funktionaliteten i en klass. Till exempel kommer dubbelklassen att ha ett dubbelvärde som dess data och tillhandahålla metoder för att manipulera det värdet.

Alla dessa omslagsklasser har en metod som heter valueOf. Denna metod tar en sträng som ett argument och returnerar en instans av omslagsklassen. Låt oss till exempel säga att vi har en sträng med värdet tio:

Strängnummer = "10";

Att ha detta nummer som en sträng är inte till någon nytta för oss så vi använder klassen Integer för att konvertera det till ett heltal-objekt:

Heltal konverterat nummer = heltal.värde av (antal);

Nu kan numret användas som ett nummer och inte som en sträng:

konverterade nummer = konverterade nummer 20;

Du kan också göra att konverteringen går direkt till en primitiv datatyp:

int convertNumber = Heltal.valueOf (nummer) .intValue ();

För andra primitiva datatyper slår du bara in rätt omslagsklass-Byte, Heltal, Dubbel, Float, Long Short.

Notera: Du måste se till att strängen kan tolkas i rätt datatyp. Om det inte kan du sluta med ett runtime-fel. Att till exempel försöka hämta "tio" till ett heltal:

Strängnummer = "tio";
int convertNumber = Heltal.valueOf (nummer) .intValue ();

kommer att producera en NumberFormatException eftersom kompilatorn inte har någon aning om att "tio" ska vara 10.

Mer subtilt samma fel kommer att inträffa om du glömmer att en "int" bara kan innehålla hela siffror:

Strängnummer = "10,5";
int convertNumber = Heltal.valueOf (nummer) .intValue ();

Kompilatorn kommer inte att avkorta antalet, det kommer bara att tro att det inte passar in i ett "int" och att det är dags att kasta en NumberFormatException.

Konvertera siffror till strängar

Att göra ett nummer till en sträng följer samma typ av mönster som strängklassen har ett värdeOf-metod också. Det kan ta något av de primitiva datatypnumren som ett argument och producera en sträng:

int-nummerTio = 20;

Sträng konverterad = String.valueOf (numberTwenty);

vilket sätter "20" som strängvärdet för co nverted.

eller så kan du använda toString-metoden i någon av omslagsklasserna:

Sträng konverterad = heltal.toString (antalTio);

ToString-metoden är gemensam för alla objekttyper - för det mesta är det bara en beskrivning av objektet. För omslagsklasser är denna beskrivning det verkliga värdet de innehåller. I denna riktning är konverteringen lite mer robust. Om dubbelklassen skulle användas istället för heltalet:

Sträng konverterad = Double.toString (numberTwenty);

resultatet skulle inte orsaka ett runtime-fel. Den konverterade variabeln skulle innehålla strängen "20.0".

Det finns också ett mer subtilt sätt att konvertera siffror när du sammankopplar strängar. Om en sträng skulle byggas som:

String aboutDog = "Min hund är" + nummerTio + "år gammal.";

konverteringen av int-numretTio görs automatiskt.


Video, Sitemap-Video, Sitemap-Videos