Java中如何让+运算符作为算术加法而非字符串拼接参与表达式运算?
解决Java字符串拼接中算术加法优先级问题
嘿,刚学Java几周遇到这个问题太正常了,我当初也栽过这个跟头😉
问题原因
Java里的+运算符有两种作用:算术加法和字符串拼接,它的执行顺序是从左到右的。你的代码里,"Please enter the #" + i + 1会先把左边的字符串和i拼接成新的字符串(比如i=0时就是"Please enter the #0"),然后再把这个结果和"1"做字符串拼接,最后就变成了"Please enter the #01",完全不是你想要的算术加法效果。
解决方案
只需要给i + 1加上括号,利用括号提升运算优先级,让算术加法先执行,再把结果和前后的字符串拼接就可以了:
System.out.print("Please enter the #" + (i + 1) + " data: ");
这样当i=0时,会先计算0+1=1,再把这个数值转换成字符串和前后部分拼接,最终输出就是你预期的"Please enter the #1 data: "。
小补充
如果以后遇到混合了字符串和算术运算的场景,记得用括号明确指定运算顺序,避免因为运算符优先级导致的意外结果哦!
内容的提问来源于stack exchange,提问作者westae
相关产品推荐
相关产品推荐

