Java 类型转换
- 基本概念:Java类型转换是将一个数据类型(如
int
,float
,double
等)的值转换为另一种数据类型的过程。 - 扩宽类型转换:自动发生,无需显示转换代码,将较小数据类型(如
int
)转换为较大数据类型(如double
)时不会丢失数据。 - 缩小类型转换:需要显式转换,如用圆括号将较大数据类型(如
double
)转换为较小数据类型(如int
),可能会导致数据丢失。
在了解 Java 类型转换 之前,请确保您了解 Java 数据类型。
类型转换
将一个数据类型(int
、float
、double
等)的值转换为另一种数据类型的过程被称为类型转换 。
在 Java 中,有 13 种类型的类型转换。然而,在本教程中,我们只关注两种主要类型。
-
扩宽类型转换(Widening Type Casting)
-
缩小类型转换(Narrowing Type Casting)
要了解其他类型的类型转换,请访问 Java 类型转换(官方 Java 文档)。
扩宽类型转换
在 扩宽类型转换 中,Java 会自动将一种数据类型转换为另一种数据类型。
示例:将 int 转换为 double
class Main {
public static void main(String[] args) {
// 创建 int 类型变量
int num = 10;
System.out.println("整数 值: " + num);
// 转换为 double 类型
double data = num;
System.out.println("双精度浮点数值: " + data);
}
}
输出
整数值: 10
双精度浮点数值: 10.0
在上述示例中,我们将名为 num
的 int
类型变量赋值给名为 data
的 double
类型变量。
在这里,Java 首先将 int
类型的数据转换为 double
类型,然后将其赋值给 double
变量。
在 扩宽类型转换 的情况下,较低的数据类型(大小较小)被转换为较高的数据类型(大小较大)。因此,数据不会丢失。这就是为什么这种类型的转换会自动发生。
注意:这也被称为 隐式类型转换。
缩小类型转换
在 缩小类型转换 中,我们使用圆括号手动将一种数据类型转换为另一种数据类型。
示例:将 double 转换为 int
class Main {
public static void main(String[] args) {
// 创建 double 类型变量
double num = 10.99;
System.out.println("双精度浮点数值: " + num);
// 转换为 int 类型
int data = (int)num;
System.out.println("整数值: " + data);
}
}
输出
双精度浮点数值: 10.99
整数值: 10
在上述示例中,我们将名为 num
的 double
类型变量赋值给名为 data
的 int
类型变量。
注意这一行,```java int data = (int)num;
在这里,圆括号内的 `int` 关键字表明 `num` 变量被转换为 `int` 类型。
在 **缩小类型转换** 的情况下,较高的数据类型(大小较大)被转换为较低的数据类型(大小较小)。因此会丢失数据。这就是为什么这种类型的转换不会自动发生。
**注意**:这也被称为 **显式类型转换**。
让我们看一些 Java 中其他类型转换的示例。
## 示例 1:从 int 到 String 的类型转换
```java exec
class Main {
public static void main(String[] args) {
// 创建 int 类型变量
int num = 10;
System.out.println("整数值是: " + num);
// 将 int 转换为 string 类型
String data = String.valueOf(num);
System.out.println("字符串值是: " + data);
}
}
输出
整数值是: 10
字符串值是: 10
在上述程序中,请注意以下代码行
String data = String.valueOf(num);
在这里,我们使用了 Java String 类 的 valueOf()
方法将 int 类型变量转换为字符串。
示例 2:从 String 到 int 的类型转换
class Main {
public static void main(String[] args) {
// 创建 string 类型变量
String data = "10";
System.out.println("字符串值是: " + data);
// 将 string 变量转 换为 int
int num = Integer.parseInt(data);
System.out.println("整数值是: " + num);
}
}
输出
字符串值是: 10
整数值是: 10
在上述示例 中,请注意以下代码行
int num = Integer.parseInt(data);
在这里,我们使用了 Java Integer
类的 parseInt()
方法将字符串类型变量转换为 int
变量。
注意:如果字符串变量无法转换为整数变量,则会发生名为 NumberFormatException
的异常。