在了解Java类型转换之前 ,请确保您了解Java数据类型。
型铸
将一种数据类型( int
, float
, double
等)的值转换为另一种数据类型的过程称为类型转换。
在Java中,有13种类型转换。但是,在本教程中,我们将只关注主要的两种类型。
1.加宽型铸造
2.窄型铸造
要了解其他类型的类型转换,请访问Java类型转换(Java官方文档)。
加宽型铸造
在Widening Type Casting中 ,Java自动将一种数据类型转换为另一种数据类型。
示例:将int转换为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);
}
}
输出
The integer value: 10
The double value: 10.0
在上面的示例中,我们将名为num的int
类型变量分配给名为data的double
类型变量。
在这里,Java首先将int
类型的数据转换为double
类型。然后将其分配给double
变量。
在加宽类型强制转换的情况下,较低的数据类型(具有较小的大小)将转换为较高的数据类型(具有较大的大小)。因此,没有数据丢失。这就是为什么这种类型的转换会自动发生的原因。
注意 :这也称为隐式类型转换 。
窄型铸件
在Narrowing Type Casting中 ,我们使用括号将一种数据类型手动转换为另一种数据类型。
示例:将double转换为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);
}
}
输出
The double value: 10.99
The integer value: 10
在上面的示例中,我们将名为num的double
型变量分配给名为data的int
型变量。
注意这一行,
int data = (int)num;
在此,括号内的int
关键字表示num变量已转换为int
类型。
在Narrowing Type Casting的情况下,较高的数据类型(具有较大的大小)将转换为较低的数据类型(具有较小的大小)。因此,存在数据丢失。这就是为什么这种类型的转换不会自动发生的原因。
注意 :这也称为显式类型转换 。
让我们看一下Java中其他类型转换的一些示例。
示例1:从int到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);
}
}
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);
}
}
输出
The integer value is: 10
The string value is: 10
在上面的程序中,注意以下行
String data = String.valueOf(num);
在这里,我们使用Java String类的valueOf()
方法将int类型变量转换为字符串。
示例2:类型从字符串转换为整数
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);
}
}
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);
}
}
输出
The string value is: 10
The integer value is: 10
在上面的示例中,请注意以下行
int num = Integer.parseInt(data);
在这里,我们使用了Java Integer
类的parseInt()
方法将字符串类型变量转换为int
变量。
注意 :如果无法将字符串变量转换为整数变量,则会发生名为NumberFormatException
的异常。