当前位置: 首页 > 面试题库 >

字符串文字之后,所有+都将被视为字符串串联运算符,为什么?

司徒宏远
2023-03-14
问题内容

我不明白为什么整数在串联中被视为字符串文字。例如

String s=10+30+" Sachin "+40+40;  
System.out.println(s);

输出为:40 Sachin 4040

为什么40+40不添加,为什么10+30添加


问题答案:

该表达式从左到右求值。前两个操作数均为int(10和30),因此第一个+执行加法。

下一个+获取int操作数(40)和String操作数(“ Sachin”),因此将其转换intString并执行String连接。

接下来的+运算符获取一个String操作数和一个int操作数,并执行String级联。

如果您想要不同的评估顺序,请使用括号:

String s=10+30+" Sachin "+(40+40);

这将输出40 Sachin 80



 类似资料:
  • 本文向大家介绍通过+(字符串串联)运算符进行字符串串联。,包括了通过+(字符串串联)运算符进行字符串串联。的使用技巧和注意事项,需要的朋友参考一下 您可以使用Java的“ +”运算符来连接字符串。 示例 输出结果

  • 问题内容: Oracle Java Community网站上的一篇文章提供了以下方法作为示例(对于JPA Converter,但这并不相关): 将String y强制转换为String val有什么用?有正当的理由吗? 原始文章:JPA的新增功能 问题答案: 这样的转换是完全没有必要的。我可以想象那是以前 但是后来参数类型更改为,而作者只是忘了删除强制类型转换。

  • 问题内容: 例如: 问题答案: 这是因为从索引0 in开始的长度为0的子字符串等于空字符串: 当然,任何字符串的长度为零的 每个 子字符串都等于空字符串。

  • 问题内容: 假设字符串a和b: 在幕后,他们是同一回事吗? 这里将concat反编译为参考。我也希望能够反编译该+运算符,以查看其作用。 问题答案: 不,不是。 首先,语义上略有不同。如果a是null,则抛出一个,但a+=b将把原来的值a就好像它是null。此外,该方法仅接受值,而+操作员会将参数无提示地转换为String(使用对象的方法)。因此,该concat()方法在接受方面更加严格。 要深入

  • 问题内容: 如何将字符串转换成运算符plus?谢谢! 问题答案: 使用查找表:

  • 问题内容: 我对String串联感到困惑。 输出为: 50abc20 50abc1010 我想知道为什么在两种情况下都将 20 + 30 加在一起,但是 10 + 10 需要加上括号(s1)而不是串联到String(s2)。请在此处说明String运算符的工作方式。 问题答案: 加法保持关联。以第一种情况 在第二种情况下: