转成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);
相关推荐
Piper蛋窝2 小时前
深入 Go 语言垃圾回收:从原理到内建类型 Slice、Map 的陷阱以及为何需要 strings.Builder
后端·go
六毛的毛4 小时前
Springboot开发常见注解一览
java·spring boot·后端
AntBlack4 小时前
拖了五个月 ,不当韭菜体验版算是正式发布了
前端·后端·python
31535669134 小时前
一个简单的脚本,让pdf开启夜间模式
前端·后端
uzong5 小时前
curl案例讲解
后端
一只叫煤球的猫5 小时前
真实事故复盘:Redis分布式锁居然失效了?公司十年老程序员踩的坑
java·redis·后端
大鸡腿同学6 小时前
身弱武修法:玄之又玄,奇妙之门
后端
轻语呢喃8 小时前
JavaScript :字符串模板——优雅编程的基石
前端·javascript·后端
MikeWe8 小时前
Paddle张量操作全解析:从基础创建到高级应用
后端
岫珩8 小时前
Ubuntu系统关闭防火墙的正确方式
后端