You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Java中int转String的代码无报错且输出为55?

为啥int和String拼接能正常运行?

先澄清下:你贴的代码实际运行输出应该是5,不是55,大概率是输出示例写错了。

你提到的“不能直接把int转成String”是对的——比如String str = (String)5;这种强制转换肯定报错,因为int是基本类型,和String没有继承关系,没法直接强转。但你写的str = str + i;属于另一种情况,这是Java编译器提供的语法糖:

当+运算符两边有一个是String类型时,Java会自动把另一边的基本类型(这里是int)转换成字符串,再完成拼接。具体编译器会把这段代码翻译成类似下面的逻辑:

str = new StringBuilder().append(str).append(i).toString();

这里的append(i)会自动调用String.valueOf(i)把int值转成对应的字符串,再拼接到空字符串后面,最终得到"5"。

说白了,这不是直接的类型转换,是Java帮你在底层做了自动转字符串+拼接的处理,所以不会报错,还能得到正确的字符串结果。

内容的提问来源于stack exchange,提问作者Karan Suthar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 16:13:14