String利用+=拼接之后输出为数字的解决方法

首先定义一个String类型的result

这里我想用循环,实现result的拼接,采用的是每次循环对result+=所需拼接的字符,如果是单纯对字符的拼接,会导致以下的输出:

原因是用+=拼接之后,表达式的右边就全是char类型的变量在进行相加,这时候编译器就把这些char当成ASCII码之间的数字运算,所以得到下面的结果

我这里有两种解决方案(思路就是让char类型的变量+“”(哪怕是个空的String)让其升级为String,这里可以参考int+double->double类型)

不过对字符串拼接时可以采用StringBuilder.append()和StringJoiner.add(),这样更省空间,效率更高

String的拼接是每次都在堆内存中new一个新的String出来,浪费内存而且速度慢

①将表达式右边的任意一个字符转化为String类型,这里用到了String类里面的Valueof方法,如下图

这样就告诉编译器,表达式右边不光是char还有String,所以向上升级,char也当成String进行拼接操作

②将 result+=xxx 改为 result=result+xxx

这样表达式右边就有了result这一个String类型的变量,所以右边全部数据类型向String类型升级

得到预期结果:

总结:

虽然我们来看,result+=xxx和result=result+xx,好像是一样的,但是还是要在表达式右边准确的告诉编译器,我要得到的是String而不是ASCII码的相加

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值