我不明白为什么整数在串联中被视为字符串文字。例如
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”),因此将其转换int
为String
并执行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运算符的工作方式。 问题答案: 加法保持关联。以第一种情况 在第二种情况下: