Java中String字符串toString()、String.valueOf()、String强转、+ ""的区别

摘抄自大神:https://www.cnblogs.com/EasonJim/p/7867881.html

1.toString():使用时要注意保证Object对象不为null,否则会报“空指针异常”(NullPointerException)。

2.(String)object:使用时需要注意该对象的类型必须能够转成String类型,因此最好先用nstanceof关键字做一下类型检查,来判断是否可以转换,否则可能会报类型转换异常(CalssCastException)。

以下代码会报“不能转换异常”,因为Integer类型和String类型不存在继承与实现关系。 大神的解释链接:为什么Integer不能强转成String?

Object obj = new Integer(100);
String strVal = (String)obj;

但如下代码若格式有问题则会有报“格式异常”:

Integer obj = new Integer(100);
String strVal = (String)obj;

注意:null值可以强转成各种java类型,所以(String)null是合法的(值为null)。

3.String.valueOf(Object):

以下为valueOf的源码:

public static String valueOf(Object obj) {
    return (obj == null) ? "null" : obj.toString();
}

valueOf不用担心null的问题,但需要注意的是,出来的值为"null"不是null

4.object + "":

相当于new出一个StringBuilder去append,效率上会增加多一个对象的容量消耗,不建议使用该方法。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
toString()、String.valueOf() 和强制类型转换是在不同情况下用于将不同类型的数据转换为字符串的方法。 1. toString() 方法: - toString() 是 Object 类的方法,因此它可以在任何对象上调用。 - 它将对象转换为字符串表示形式,并返回一个字符串。 - 对于自定义类,可以通过重写 toString() 方法来自定义对象的字符串表示形式。 - 例如,对于整数类型的对象 Integer num,可以使用 `num.toString()` 来将其转换为字符串。 2. String.valueOf() 方法: - String.valueOf() 是 String 类的静态方法,可以将任何基本数据类型、对象或字符数组转换为字符串。 - 它接受一个参数,并返回对应的字符串表示形式。 - 如果参数为 null,则返回字符串 "null"。 - 与 toString() 方法不同的是,String.valueOf() 方法在处理 null 值时更安全,不会抛出空指针异常。 - 例如,可以使用 `String.valueOf(num)` 将整数 num 转换为字符串。 3. 强制类型转换: - 强制类型转换是将一个数据类型转换为另一个数据类型的操作。 - 它通常用于基本数据类型之间的转换,如将整数转换为浮点数、将浮点数转换为整数等。 - 强制类型转换使用括号将要转换的数据类型放在需要转换的值之前。 - 强制类型转换可能会导致数据丢失或精度损失,需要谨慎使用。 - 例如,可以使用 `(int) num` 将浮点数 num 强制转换为整数。 总结: - toString() 是对象的方法,将对象转换为字符串。 - String.valueOf() 是静态方法,将任何类型的值转换为字符串,安全处理 null 值。 - 强制类型转换是将一个数据类型转换为另一个数据类型的操作,常用于基本数据类型之间的转换。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值