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

Java中如何将多数字与字符串拼接?为何拼接后数字无法相加?

为什么Java中字符串拼接会出现20 Hello 2010这样的结果?

嘿,这个问题其实是Java里字符串拼接的经典细节,核心在于+运算符的左结合性和类型转换规则,咱们一步步拆解就明白啦:

首先得明确Java里+的两种作用:

  • 当两边都是数值类型(比如int、long)时,执行数值加法
  • 只要其中一边是String类型,就会触发字符串拼接——此时数值类型会自动转成字符串,和另一边拼接

接下来咱们拆解你给出的代码:

String val = 10 + 10 + " Hello " + 20 + 10;

Java会按照从左到右的顺序依次计算每一步:

  1. 第一步:10 + 10 → 两个int类型,执行数值加法,结果是20(int类型)
  2. 第二步:20 + " Hello " → 这里出现了String类型,触发字符串拼接:把int的20转成字符串"20",和" Hello "拼接成"20 Hello "(String类型)
  3. 第三步:"20 Hello " + 20 → 现在左边已经是String类型了,所以把int的20转成字符串"20",拼接后得到"20 Hello 20"
  4. 第四步:"20 Hello 20" + 10 → 同样,把int的10转成字符串"10",最终拼接成"20 Hello 2010"

而第一个例子10 + 10 + " Hello ",在完成10+10=20后,和字符串拼接就结束了,所以结果是"20 Hello"。

如果想让后面的20+10也执行数值加法,你可以用括号改变运算优先级,比如:

String val = 10 + 10 + " Hello " + (20 + 10);

这样先算括号里的20+10=30,再和前面的字符串拼接,结果就会是"20 Hello 30"啦。

内容的提问来源于stack exchange,提问作者Ramesh C

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 09:32:39