In der Regel gibt es in einer grafischen Benutzeroberfläche Textfelder, in die der Benutzer einen numerischen Wert eingeben muss. Dieser Zahlenwert endet in einem String-Objekt, das Ihrem Programm nicht wirklich hilft, wenn Sie arithmetisch arbeiten möchten. Glücklicherweise gibt es Wrapper-Klassen, die Methoden zum Konvertieren dieser String-Werte in Zahlen bereitstellen, und die String-Klasse verfügt über eine Methode, um sie wieder zurück zu konvertieren.
Die primitiven Datentypen, die sich mit Zahlen befassen (d. H. Byte, Int, Double, Float, Long und Short), haben alle Klassenäquivalente. Diese Klassen werden als Wrapper-Klassen bezeichnet, da sie einen primitiven Datentyp annehmen und ihn mit der Funktionalität einer Klasse umgeben. Beispielsweise hat die Double-Klasse einen Double-Wert als Daten und stellt Methoden zum Bearbeiten dieses Werts bereit.
Alle diese Wrapper-Klassen haben eine Methode namens valueOf. Diese Methode verwendet einen String als Argument und gibt eine Instanz der Wrapper-Klasse zurück. Angenommen, wir haben einen String mit dem Wert zehn:
String number = "10";
Diese Zahl als String zu haben, ist für uns nicht von Nutzen. Daher konvertieren wir sie mit der Integer-Klasse in ein Integer-Objekt:
Integer conversionNumber = Integer.valueOf (number);
Jetzt kann die Nummer als Zahl und nicht als String verwendet werden:
konvertierteNummer = konvertierteNummer + 20;
Sie können die Konvertierung auch direkt auf einen primitiven Datentyp umstellen:
int convertNumber = Integer.valueOf (number) .intValue ();
Für andere primitive Datentypen geben Sie einfach die richtige Wrapper-Klasse ein: Byte, Integer, Double, Float, Long Short.
Hinweis: Sie müssen sicherstellen, dass die Zeichenfolge in den entsprechenden Datentyp analysiert werden kann. Wenn dies nicht möglich ist, kommt es zu einem Laufzeitfehler. Versuchen Sie beispielsweise, "zehn" in eine Ganzzahl umzuwandeln:
String number = "ten";
int convertNumber = Integer.valueOf (number) .intValue ();
erzeugt eine NumberFormatException, da der Compiler keine Ahnung hat, dass "zehn" 10 sein soll.
Noch subtiler wird der gleiche Fehler auftreten, wenn Sie vergessen, dass ein 'int' nur ganze Zahlen enthalten kann:
String number = "10.5";
int convertNumber = Integer.valueOf (number) .intValue ();