!!!新人求教:为什么“aa”后面的两个相加输出会变成“66”?

public class work4

{

   public static void main(String args[])
   {
    int x=5;
    int y=2;
    System.out.println(x+y+"K");
    System.out.println(6+6+"aa"+6+6);    

}

}

输出图片

图片说明

3个回答

从左到右执行运算,在没有加到字符串时,是int类型相加,当加到字符串时,整型转为String类型,string+string还是string,然后与后面的int类型
相加时,后面int类型的需要转为string类型,因此依此相加就是输出结果。

jackiosNeal
雪地麋鹿 回复Rxiaoxing: 转换成string类型
一年多之前 回复
Rxiaoxing
嗯哼不告诉你 回复qq_33898680: 明白了,谢谢大佬,mua(づ ̄3 ̄)づ╭❤~
一年多之前 回复

从左到右逐项相加,顺序是这样的:
6+6 都为数值,得到数值12
12+"aa" 有一字符串,转为字符串,“12aa”
"12aa"+6 同上得到 "12aa6"
"12aa6"+6 同上得到 "12aa66"

Rxiaoxing
嗯哼不告诉你 回复qq_33898680: 明白了,谢谢大佬,mua(づ ̄3 ̄)づ╭❤~
一年多之前 回复
qq_33898680
孤独mk 回复Rxiaoxing: 对的,其他类型与字符串相加,就会转为String类型
一年多之前 回复
Rxiaoxing
嗯哼不告诉你 哦,意思是不是后面的6,6都转为字符串了,为什么会这样呢?
一年多之前 回复

是这样的,整形相加得到的结果是整形,整形和字符串相加得到的是字符串,所以你前两个是整形相加,得到12,再和aa相加,就是
整形和字符串相加,得到字符串12aa,再和6相加,就是字符串和整形相加,又得到字符串12aa6,再和最后一个6相加,就是字符串和整
型相加,得到字符串12aa66.

Rxiaoxing
嗯哼不告诉你 mua',谢谢大佬,我明白了。
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐