Zum Hauptinhalt

Weitere Grundlegendende Programmierkonzepte in Java

Konvertierung

Wir wollen uns nun noch mit der Umwandlung, von einem Datentyp in einen Anderen, befassen. Wir haben schon gesehen, dass Java dies in manchen Situationen automatisch durchführt. Aber es gibt auch Situationen, in denen Java dies nicht tut. Nämlich immer dann, wenn unter Umständen Informationen verloren gehen könnten.


 long l = 1;  // funktioniert 
 int  i = 1l; // Erzeugt einen Compilerfehler
In diesen Situationen ist es nötig, dass wir einen expliziten Typecast, also eine Typenkonvertierung, durchführen. Hierfür schreiben wir den gewünschten Typ in klammern vor den Ausdruck, der konvertiert werden soll int i = (int)1l;. Die Typenkonvertierung wird von Java durchgeführt, bevor andere Operatoren ausgewertet werden. Aus diesem Grund muss ggF. mit Klammern die Auswertungsreihenfolge angepasst werden:


 System.out.println( (int)1.5 * 2 ); // Ergebnis 2
 System.out.println((int)(1.5 * 2)); // Ergebnis 3
Wie wir eine Zahl in einen String umwandeln hatten wir schon gesehen. Wir verbinden einen String mit der Zahl. Dies kann auch der leere String sein: String s = 1 + "";.

Der Umgekehrte Vorgang erfordert leider ein wenig mehr Aufwand. Es gibt für unsere vier Zahlen-Typen jeweils eine Klasse, die diesen Datentyp auch darstellen kann. Sie heißen Integer, Long, Float und Double. Jede dieser Klassen hat eine Klassen-Methode, die aus einem String eine Zahl macht. Mittels Integer.parseInt(string) können wir aus einem String die Zahl machen, die er darstellt. Die anderen Datentypen funktionieren analog. Es ist aber erforderlich, dass in dem String nur Ziffern enthalten sind, er ggf. ein Vorzeichen hat und bei Double und Float, darf er einen Dezimalpunkt enthalten. Wird diese Form nicht eingehalten, so bricht Java mit einem Fehler ab.