转成String类型的几种方式

1. String.valueOf()

  • String.valueOf():基本数据类型或包装类都可以通过 String.valueOf() 方法转为字符串表示形式,如:
java 复制代码
int i = 22;
String stringValue = String.valueOf(i);
System.out.println("String value: " + stringValue);
  • 基本数据类型转成字符串表示形式时,可以使用String.valueOf(xx),但不能直接使用 xx.toString()方法(基本数据类型不具备方法和属性),也不能通过(String)进行强制类型转化

  • String.valueOf(Object) 是在 Object.toString() 的基础上实现的,源码:

java 复制代码
public static String valueOf(Object obj) {
    return (obj == null) ? "null" : obj.toString();
}
  • Object.toString() 方法的不同点在于,String.valueOf(Object) 不用担心对象是否为 null 这一问题,可以安全地处理 null 对象

2. 包装类-toString()

java 复制代码
Integer i = 22;
System.out.println("String value: " + i.toString());
  • 可以使用对应包装类的toString()方法,比如使用Integer.toString(int i)方法
  • 注意:当使用 object.toString() 时,必须确保 object 不是 null 值,否则会抛出 NullPointerException 异常

3. 使用字符串拼接

  • 基本数据类型和包装类都可以使用 i + "" 的方式将基本数据类型转换成字符串
java 复制代码
int i = 22;
String str = i + "";
System.out.println(str);

4. 强制类型转换 (String) object

  • 基本数据类型不能直接通过强制类型转换 (String) 转换为字符串,因为基本数据类型并不是对象,可以将基本数据类型包装为对应的包装类,然后再强制转换为字符串
  • 用强制类型转换(String) object方法时,最好通过 instanceof 做类型检查以确保可以转换,否则可能抛出 ClassCastException

5. 总结:

  • 基本数据类型转换成String:
java 复制代码
1、String.valueOf()
2、使用字符串拼接:i + ""
  • 包装类转String:
java 复制代码
1、String.valueOf()
2、toString()
3、使用字符串拼接:i + ""
4、强制类型转换 (String) object

6. 基本数据类型和包装类

  • 基本数据类型和它们对应的包装类之间存在自动装箱和自动拆箱的机制,使得基本数据类型与包装类之间的转换更加方便

1、自动装箱: 将基本数据类型转换为包装类

java 复制代码
int intValue = 25;
Integer integerValue = intValue;

2、自动拆箱: 将包装类转换为基本数据类型

java 复制代码
Integer integerValue = 25;
int intValue = integerValue;

3、手动装箱: 显式地将基本数据类型转换为包装类

java 复制代码
int intValue = 25;
Integer integerValue = Integer.valueOf(intValue);
// 或者
Integer integer = new Integer(intValue);

4、手动拆箱: 显式地将包装类转换为基本数据类型

java 复制代码
Integer integerValue = 25;
int intValue = integerValue.intValue();
  • 自动装箱和自动拆箱使得基本数据类型与包装类之间的转换更加方便,可以直接赋值或进行算术运算。例如:
java 复制代码
Integer num1 = 10;  // 自动装箱
Integer num2 = 20;  // 自动装箱

int sum = num1 + num2;  // 自动拆箱和算术运算
System.out.println("Sum: " + sum);
相关推荐
Frank_zhou7 小时前
Easy-Es 架构设计详解
后端·elasticsearch
狗头大军之江苏分军8 小时前
Meta万人裁员亲历者自述:小扎尝到了降本的甜头
前端·后端·github
Jagger_8 小时前
SonarQube:提升代码质量的前后端解决方案
前端·后端·ai编程
在逃牛马9 小时前
【Uni-App+SSM 宠物项目实战】Day6:MP 实体类与 Mapper 生成
后端
remaindertime9 小时前
(九)Spring Cloud Alibaba 2023.x:微服务接口文档统一管理与聚合
后端·spring cloud·微服务
Barcke9 小时前
📘 初识 WebFlux
spring boot·后端·spring
JohnYan9 小时前
工作笔记 - 一个浏览器环境适用的类型转换工具
javascript·后端·设计模式
得物技术9 小时前
0基础带你精通Java对象序列化--以Hessian为例|得物技术
java·后端·编程语言
Java水解10 小时前
MySQL UPDATE 语句:数据更新操作详解
后端·mysql
Java水解10 小时前
深入浅出:在 Koa 中实现优雅的中间件依赖注入
后端·koa