Java 类型转换
在本教程中,我们将通过示例学习 Java 类型转换。
在本教程中,我们将通过示例学习 Java 类型转换。
在您了解类型转换之前,请先了解 Java 数据类型。
类型转换
数据由一种类型转换到另一种数据类型的过程称为类型转换。比如从原始类型 int
转换成 Integer
类型,从子类型转换到父类型,从父类型转换到子类型等。
在 Java 中,有 13 种类型转换。但是,在本教程中,我们将只关注主要的 2 种类型:
- 转换为更大的类型
- 转换为更小的类型
要了解其他类型的类型转换,请访问官方 Java 文档:Java Type Conversion。
转换为更大的类型
Java 自动完成类型从更小的类型转换为更大的类型。
示例:将 int 转换为 double
public class Main {
public static void main(String[] args) {
int num = 10;
System.out.println("The integer value: " + num);
double data = num;
System.out.println("The double value: " + data);
}
}
输出
The integer value: 10
The double value: 10.0
在上面的例子中,我们将名为 num
的 int
类型变量分配给名为 data
的 double
类型变量。这个过程中的类型转换是自动完成的。
在转换为更大的类型的情况下,较低的数据类型(具有较小的尺寸)被转换为较高的数据类型(具有较大的尺寸)。因此没有数据丢失。因此可以自动完成。
这也称为隐式类型转换。
转换为更小的类型
在转换为更小的类型时,我们必须强制进行数据转换。
示例:将 double 转换为 int
public class Main {
public static void main(String[] args) {
double num = 10.99;
System.out.println("The double value: " + num);
int data = (int) num;
System.out.println("The integer value: " + data);
}
}
输出
The double value: 10.99
The integer value: 10
注意在上面的例子中的注意这行代码:
int data = (int) num;
这里,括号内的 int
关键字表示强制转换为 int
类型。
在转换为更小的类型时,较高的数据类型(具有较大的尺寸)被转换为较低的数据类型(具有较小的尺寸)。因此存在数据丢失。因此要手动强制转换。
这也称为显式类型转换。
让我们看看 Java 中其他类型转换的一些示例。
示例 1:从 int 到 String 的类型转换
public class Main {
public static void main(String[] args) {
int num = 10;
System.out.println("The integer value is: " + num);
String data = String.valueOf(num);
System.out.println("The string value is: " + data);
}
}
输出
The integer value is: 10
The string value is: 10
在上面的程序中,注意这一行
String data = String.valueOf(num);
在这里,我们使用了 Java String
类的 valueOf()
方法将 int
类型变量数据转换为字符串。
示例 2:从 String 到 int 的类型转换
public class Main {
public static void main(String[] args) {
String data = "10";
System.out.println("The string value is: " + data);
int num = Integer.parseInt(data);
System.out.println("The integer value is: " + num);
}
}
输出
The string value is: 10
The integer value is: 10
在上面的例子中,注意这一行
int num = Integer.parseInt(data);
在这里,我们使用了 Java Integer
类的 parseInt()
方法将数据从字符串类型转换为 int
类型。
注意:如果无法将字符串变量转换为整数变量,则会抛出 NumberFormatException
异常。