Java—基本数据类型,包装类和String之间的相互转化

本文深入讲解Java中基本数据类型与包装类的关系,包括自动装箱、拆箱过程,以及基本数据类型、包装类与String之间的转换方法。适用于初学者理解和掌握Java面向对象特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是包装类?

java是一种面向对象的语言,所以为8种基本数据类型提供了对应了包装类。使得基本数据类型的变量具有类的特征,也使的Java真正变成了面向对象的语言。

基本数据类型包装类
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
booleanBoolean
charCharacter

其中,表格前六行数字型数据类型的父类都为Number类


基本数据类型,包装类和String之间可以相互转化,来完成一些转化前不能完成的操作,以下举出一部分相互转化的方法
在这里插入图片描述
以下一一举例:


①基本数据类型转化为包装类

方法一:通过调用包装类的构造器

  Float f1 = new Float(12.3f);
  System.out.println(f1.toString());

运行结果:
在这里插入图片描述

方式二:自动装箱
JDK5.0之后提供了自动装箱功能,可以将基本数据类型直接赋给类对象,
JVM会自动做装箱工作,将基本数据类型封装为类对象

  int num2 = 10;
  Integer in1 = num2;

②包装类转化为基本数据类型

方法一:调用包装类的XXXValue()方法

  Float f1 = new Float(12.3);
  float f2 = f1.floatValue();
  System.out.println(f2 + 1);

运行结果:
在这里插入图片描述

方法二:自动拆箱

  Integer in1 = 10;
  int num3 = in1;
  System.out.println(num3);

运行结果:
在这里插入图片描述


③基本数据类型和封装类转化为String类

方法一:调用String类的valueOf()方法

1.基本数据类型
  int a=10;
  String str = String.valueOf(a);
  System.out.println(str);

2.封装类
  Integer n=10;
  String str = String.valueOf(n);
  System.out.println(str);

运行结果:
在这里插入图片描述

方法二:字符串连接
基本数据类型和字符串做连接运算时,基本数据类型会被提升为字符串类型
所以可以将基本数据类型和“”空字符串做连接运算

1.基本数据类型
  int b=13;
  String string=b+"";
  System.out.println(string);

2.封装类 
  Integer b=13;
  String string=b+"";
  System.out.println(string);

运行结果:
在这里插入图片描述


④String类转化为基本数据类型和封装类

方法一:调用包装类的parseXXX(String s)方法

1.转化为基本数据类型
  String str1="1234";
  int num2 = Integer.parseInt(str1);
  System.out.println(num2 + 1);

2.转化为包装类
  String str1="1234";
  Integer num2 = Integer.parseInt(str1);
  System.out.println(num2 + 1);

运行结果:
在这里插入图片描述


另:包装类转化为String可以使用包装类的toString方法

  Integer n=100;
  String str = Integer.toString(n);
  System.out.println(str);

  Integer n=100;
  String str = n.toString(n);
  System.out.println(str);

可以通过 类名.方法 或者 对象.方法 调用

### Java 包装数据类型转换 #### 不同包装之间相互转换 在Java中,不同的包装可以通过特定的方法实现互相转换。以下是几种常见的方式: 对于整数型包装`Integer`到浮点型包装`Float`的转换可以先通过拆箱操作将`Integer`变为基本数据类型`int`再利用构造函数或者静态方法将其转化为`float`并重新封装为`Float`。 ```java // 整形包装转浮点型包装 Integer intValue = 12; Float floatValue = Float.valueOf(intValue.floatValue()); System.out.println(floatValue); // 输出:12.0 ``` 当涉及到布尔型与其他数值型包装间转换时需要注意,由于逻辑上这两者并无直接关联因此无法简单地进行互转[^2]。 从字符串至其他各包装对象则更为简便,各包装均提供了一个名为`parseXxx()`(其中`Xxx`代表相应的大写首字母的基本数据类型名称)的静态工厂方法用于完成此过程[^5]。 ```java // 字符串转整形包装 String strInt = "123"; Integer integerFromStr = Integer.parseInt(strInt); System.out.println(integerFromStr); // 输出:123 // 字符串转双精度浮点数包装 String strDouble = "123.456"; Double doubleFromStr = Double.parseDouble(strDouble); System.out.println(doubleFromStr); // 输出:123.456 ``` 反过来由任意一种包装实例生成其对应的字符串表达也很容易做到,只需调用该实例自身的`toString()`方法即可[^4]。 ```java // 浮点型包装字符串 Float floatObj = 987.6f; String stringFromFloat = floatObj.toString(); System.out.println(stringFromFloat); // 输出:"987.6" ``` 此外还有自动装箱与拆箱机制简化了部分场景下的显式转型需求,使得代码更加简洁易读[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值