
以下表达式的结果
ret + str.charAt(i) + str.charAt(i);
是String连接的结果。Java语言规范说明
字符串串联的结果是对String对象的引用,该对象是两个 *** 作数字符串的串联。在新创建的字符串中,左侧 *** 作数的字符位于右侧 *** 作数的字符之前。
的结果
str.charAt(i) + str.charAt(i);
是将加法运算符应用于两个数字类型的结果。Java语言规范说明
当应用于两个数字类型的 *** 作数时,binary +运算符将执行加法运算,从而得出这些 *** 作数的总和。[…]数字 *** 作数上加法表达式的 类型是其 *** 作数的
提升 类型。
在这种情况下
str.charAt(i) + str.charAt(i);
成为
int两个
char值的和。然后将其连接到
ret。
您可能还想了解有关复合赋值表达式的信息
+=
形式的复合赋值表达式
E1 op= E2等效于E1 = (T) ((E1) op(E2)),其中T是的类型E1,不同之处在于该表达式E1仅被评估一次。
换一种说法
ret += str.charAt(i) + str.charAt(i);
相当于
ret = (String) ((ret) + (str.charAt(i) + str.charAt(i)));| ^ integer addition|^ string concatenation
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)