Vanligtvis kommer det i ett grafiskt användargränssnitt 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.
De primitiva datatyperna som handlar med siffror (dvs byte, int, dubbel, flytande, 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. Den här metoden 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 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å få konverteringen att gå 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 lämplig 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 ();