Wie man Long to Int in Java konvertiert
-
Verwenden Sie Type Casting, um ein
longin einintin Java zu konvertieren -
Verwenden Sie
Math.toIntExac(), um einlongin einintin Java zu konvertieren
Dieses Tutorial behandelt Methoden, um ein long in ein int in Java zu konvertieren.
Verwenden Sie Type Casting, um ein long in ein int in Java zu konvertieren
Der einfachste Weg, ein long in ein int in Java zu konvertieren, ist, das long mit (int) longVar in das int zu casten. Das folgende Beispiel veranschaulicht dies:
public class MyClass {
public static void main(String args[]) {
long myLong = 10000l;
int myInt = (int) myLong;
System.out.println("Value of long: " + myLong);
System.out.println("Value after conversion to int: " + myInt);
}
}
Ausgabe:
Value of long: 10000
Value after conversion to int: 10000
Verwenden Sie Math.toIntExac(), um ein long in ein int in Java zu konvertieren
In Java 8 und höher können wir die eingebaute Math Klassenmethode - Math.toIntExac() verwenden, um in Java ein long in ein int zu konvertieren. Das folgende Beispiel veranschaulicht dies:
public class MyClass {
public static void main(String args[]) {
long myLong = 10000l;
int myInt = Math.toIntExact(myLong);
System.out.println("Value of long: " + myLong);
System.out.println("Value after conversion to int: " + myInt);
}
}
Ausgabe:
Value of long: 10000
Value after conversion to int: 10000
Dies sind die beiden gebräuchlichen Methoden zur Konvertierung eines Long in ein int in Java. Wir müssen jedoch sicherstellen, dass der Long-Wert, den wir haben, vollständig im int gespeichert werden kann, da beide unterschiedliche Speichergrenzen haben, 32 Bit gegenüber 64 Bit.
Beide Methoden verhalten sich unterschiedlich, wenn wir versuchen, einen long Wert, der größer als 32 Bit ist, in einen int zu konvertieren.
Das folgende Beispiel veranschaulicht, wie sich das Typecasting in diesem Fall verhält.
public class MyClass {
public static void main(String args[]) {
long myLong = 10000000000l;
int myInt = (int) myLong;
System.out.println("Value of long: " + myLong);
System.out.println("Value after conversion to int: " + myInt);
}
}
Ausgabe:
Value of long: 10000000000
Value after conversion to int: 1410065408
Beachten Sie, dass der resultierende konvertierte Wert falsch ist, da wir diesen “langen” Wert nicht in eine int-Variable einpassen können.
Das folgende Beispiel veranschaulicht, wie sich Math.toIntExac() in diesem Fall verhält.
public class MyClass {
public static void main(String args[]) {
long myLong = 10000000000l;
int myInt = Math.toIntExact(myLong);
System.out.println("Value of long: " + myLong);
System.out.println("Value after conversion to int: " + myInt);
}
}
Ausgabe:
> Exception in thread "main" java.lang.ArithmeticException: integer overflow
at java.base/java.lang.Math.toIntExact(Math.java:1071)
at MyClass.main(MyClass.java:4)
Beachten Sie, dass diese Methode einen Integer Overflow-Fehler liefert, anstatt fälschlicherweise zu versuchen, den Long Wert in eine int Variable einzupassen.