对初学者友善的系列文章-了解Java类型转换

    在本教程中,我们将通过示例了解Java类型转换及其类型。

类型转换

    将一种数据类型(int、float、double等)的值转换为另一种数据类型的过程称为类型转换。
    在Java中,有13种类型转换。但是,在本教程中,我们将只关注主要的两种类型。
1.宽类型转换(Widening Type Casting)
2.窄类型转换(Narrowing Type Casting)
    要了解其他类型的类型转换,请访问Java Type Conversion(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

    在上面示例中,我们将一个名为num的int类型变量分配给一个名为data的double类型变量。
    这里,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

    在上面的示例中,我们将名为num的double类型变量分配给名为data的int类型变量。
    注意这行:

int data = (int)num;

    这里,括号内的int关键字表示num变量被转换成int类型。
    在窄类型转换的情况下,较高的数据类型(具有较大的大小)将转换为较低的数据类型(具有较小的大小)。因此,存在数据丢失。这就是为什么这种类型的转换不会自动发生的原因。
    注意:这也称为显式类型转换。
    让我们看一下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);
  }
}

    输出:

The integer value is: 10
The string value is: 10

    在上面的程序中,注意以下行

String data = String.valueOf(num);

    在这里,我们使用了Java String类的valueOf()方法将int类型变量转换为字符串。

示例2:从String类型转换为int类型

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

参考文档

[1]Parewa Labs Pvt.Java InputStream Class[EB/OL].https://www.programiz.com/java-programming/typecasting,2020-01-01.

猜你喜欢

转载自blog.csdn.net/zsx0728/article/details/109336903