Java 基础教程

Java 面向对象

Java 高级教程

Java 笔记

Java FAQ

java long转int


在 Java 中将 long 类型转换为 int 类型需要小心处理,因为 long 的范围比 int 大,可能会导致数据溢出。以下是几种不同的方法来实现这种转换,每种方法都有其适用的场景。

直接强制类型转换

这种方式是最简单的,但是需要注意 long 的值是否在 int 的范围内,否则会发生数据溢出。如果 long 的值超出了 int 的范围,转换后的结果将不正确。

long longValue = 1234567890L;
int intValue = (int) longValue;
System.out.println(intValue); // 输出: -539222987,数据溢出

使用 Math 类的 toIntExact 方法

这种方式会检查是否会发生溢出,如果发生溢出会抛出 ArithmeticException 异常。

long longValue = 1234567890L;
try {
    int intValue = Math.toIntExact(longValue);
    System.out.println(intValue);
} catch (ArithmeticException e) {
    System.out.println("溢出处理:" + e.getMessage());
}

使用 Long 类的 intValue 方法

Long 类提供了将 long 值转换为 int 的方法,如果值超出了 int 的范围,会返回 Integer.MAX_VALUE 或 Integer.MIN_VALUE。

long longValue = 1234567890L;
int intValue = Long.valueOf(longValue).intValue();
System.out.println(intValue);

使用 String 中转

通过将 long 值转换为字符串,然后再将字符串转换为 int,这种方式可以避免溢出,但会引入一些性能开销。

long longValue = 1234567890L;
int intValue = Integer.parseInt(String.valueOf(longValue));
System.out.println(intValue);

在使用这些方法时,需要根据实际情况选择最适合的方式。如果可能会发生溢出,最好使用第二种方式来进行溢出检查。如果确定值在 int 范围内,可以使用第一种方式来进行简单的转换。

对于依赖,这些方法都是 Java 标准库的一部分,无需引入第三方库。你只需要使用 Java 内置的类和方法即可。

示例代码中的变量 longValue 是待转换的 long 值,通过不同的方式将其转换为 int 类型的变量 intValue。注意,在实际应用中,务必考虑数据溢出的情况,并根据需要进行处理。

###直接赋值这是一种简单直接的方式,由于`long`的范围比`int`大,所以可以直接将`int`的值赋值给`long`。*Maven依赖 ...
示例代码:###方式二:使用Java标准库的Instant类和DateTimeFormatter类步骤流程:1.使用Instant类的ofE ...
parseInt()方法这是Java标准库提供的一种方式,可以将字符串转换为整数。示例代码:###方法三:使用ApacheCommonsLa ...
parseLong()这是Java内置的方法,用于将字符串转换为长整型。使用`NumberFormat`的`parse()`方法将字符串转换 ...
在Java中,将`long`类型转换为`String`类型有多种实现方式。toString(longvalue)`方法,其中`value`是 ...