In diesem Tutorial lernen wir anhand von Beispielen das Java Type Casting und seine Typen kennen.
Bevor Sie sich mit Java Type Casting vertraut machen, sollten Sie sich mit Java-Datentypen vertraut machen.
Typ Casting
Das Verfahren des Wert von einem Datentyp umzuwandeln ( int
, float
, double
, etc.) zu einem anderen Datentyp ist als Typumwandlung bekannt.
In Java gibt es 13 Arten der Typkonvertierung. In diesem Tutorial konzentrieren wir uns jedoch nur auf die beiden Haupttypen.
1. Verbreiterung des Gusstyps
2. Eingrenzender Gusstyp
Weitere Informationen zu anderen Arten der Typkonvertierung finden Sie unter Java-Typkonvertierung (offizielle Java-Dokumentation).
Verbreiterungstyp Gießen
In Widening Type Casting konvertiert Java automatisch einen Datentyp in einen anderen Datentyp.
Beispiel: Konvertieren von int in double
class Main ( public static void main(String() args) ( // create int type variable int num = 10; System.out.println("The integer value: " + num); // convert into double type double data = num; System.out.println("The double value: " + data); ) )
Ausgabe
Der ganzzahlige Wert: 10 Der doppelte Wert: 10.0
Im obigen Beispiel weisen wir die int
Typvariable num einer einer double
Typvariablen namens data zu.
Hier konvertiert Java zuerst die int
Typdaten in den double
Typ. Und ordnen Sie es dann der double
Variablen zu.
Im Fall von Casting mit erweitertem Typ wird der niedrigere Datentyp (mit kleinerer Größe) in den höheren Datentyp (mit größerer Größe) konvertiert. Daher gibt es keinen Datenverlust. Aus diesem Grund erfolgt diese Art der Konvertierung automatisch.
Hinweis : Dies wird auch als implizites Typgießen bezeichnet .
Enge Gussart
Beim Casting von schmalen Typen konvertieren wir einen Datentyp manuell in einen anderen, indem wir ihn in Klammern setzen.
Beispiel: Konvertieren von double in int
class Main ( public static void main(String() args) ( // create double type variable double num = 10.99; System.out.println("The double value: " + num); // convert into int type int data = (int)num; System.out.println("The integer value: " + data); ) )
Ausgabe
Der doppelte Wert: 10,99 Der ganzzahlige Wert: 10
Im obigen Beispiel weisen wir die double
Typvariable num einer einer int
Typvariablen namens data zu.
Beachten Sie die Linie,
int data = (int)num;
Hier zeigt das int
Schlüsselwort in der Klammer an, dass die Variable num in den int
Typ konvertiert wird .
Im Fall von Narrowing Type Casting werden die höheren Datentypen (mit größerer Größe) in niedrigere Datentypen (mit kleinerer Größe) konvertiert. Daher gibt es den Verlust von Daten. Aus diesem Grund erfolgt diese Art der Konvertierung nicht automatisch.
Hinweis : Dies wird auch als Explicit Type Casting bezeichnet .
Sehen wir uns einige Beispiele für andere Typkonvertierungen in Java an.
Beispiel 1: Typkonvertierung von int in String
class Main ( public static void main(String() args) ( // create int type variable int num = 10; System.out.println("The integer value is: " + num); // converts int to string type String data = String.valueOf(num); System.out.println("The string value is: " + data); ) )
Ausgabe
Der ganzzahlige Wert ist: 10 Der Zeichenfolgenwert ist: 10
Beachten Sie im obigen Programm die Zeile
String data = String.valueOf(num);
Hier haben wir die valueOf()
Methode der Java String-Klasse verwendet, um die Variable vom Typ int in einen String zu konvertieren.
Beispiel 2: Typkonvertierung von String nach int
class Main ( public static void main(String() args) ( // create string type variable String data = "10"; System.out.println("The string value is: " + data); // convert string variable to int int num = Integer.parseInt(data); System.out.println("The integer value is: " + num); ) )
Ausgabe
Der Zeichenfolgenwert ist: 10 Der ganzzahlige Wert ist: 10
Beachten Sie im obigen Beispiel die Zeile
int num = Integer.parseInt(data);
Hier haben wir die parseInt()
Methode der Java- Integer
Klasse verwendet, um eine Variable vom Typ String in eine int
Variable zu konvertieren .
Hinweis : Wenn die Zeichenfolgenvariable nicht in die Ganzzahlvariable konvertiert werden kann, NumberFormatException
tritt eine Ausnahme mit dem Namen auf.