Skip to content

Latest commit

 

History

History
171 lines (115 loc) · 4.49 KB

File metadata and controls

171 lines (115 loc) · 4.49 KB

Java 类型转换

原文: https://www.programiz.com/java-programming/typecasting

在本教程中,我们将借助示例来学习 Java 类型转换及其类型。

在学习 Java 类型转换之前,请确保您了解 Java 数据类型


类型转换

将一种数据类型(intfloatdouble等)的值转换为另一种数据类型的过程称为类型转换。

在 Java 中,有 13 种类型转换。 但是,在本教程中,我们将只关注主要的两种类型。

1.加宽类型转换

2.窄类型转换

要了解其他类型的类型转换,请访问 Java 类型转换(Java 官方文档)


扩展类型转换

扩展类型转换中,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 

在上面的示例中,我们将名为numint类型变量分配给名为datadouble类型变量。

在这里,Java 首先将int类型的数据转换为double类型。 然后将其分配给double变量。

扩展类型转换的情况下,较低的数据类型(具有较小的大小)将转换为较高的数据类型(具有较大的大小)。 因此,没有数据丢失。 这就是为什么这种类型的转换会自动发生的原因。

注意:这也称为隐式类型转换


缩小类型转换

缩小类型转换中,我们使用括号将一种数据类型手动转换为另一种数据类型。

示例:将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 

在上面的示例中,我们将名为numdouble类型变量分配给名为dataint类型变量。

注意这一行,

int data = (int)num; 

在此,括号内的int关键字表示将num变量转换为int类型。

缩小类型转换的情况下,较高的数据类型(具有较大的大小)将转换为较低的数据类型(具有较小的大小)。 因此,存在数据丢失。 这就是为什么这种类型的转换不会自动发生的原因。

注意:这也称为显式类型转换


让我们看一下 Java 中其他类型转换的一些示例。

示例 1:从intString的类型转换

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 StringvalueOf()方法将int类型变量转换为字符串。


示例 2:从Stringint的类型转换

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的异常。