A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. public static void main(String[] args) {

  2. System.out.println(6 + 6 + "aa"+ 6 + 6);



  3. }
复制代码
为何打印结果是:12aa66

求大神解惑

9 个回复

倒序浏览
6 + 6 + “aa" + 6 + 6
此运算步骤是:
1、先计算6 + 6的和是12
2、再计算12 + ”aa" ,因String与int用”+“连接,int  --> String ,结果就是12aa
3、同样,最终结果是12aa66
回复 使用道具 举报
在混合表达式中,运算符的操作数属于不同的数据类型,运算时通常会将这些操作数转换为同一类型。将操作数的数据类型转换成较高级别的数据类型,称为“类型升级”。在C语言中,数据类型由低到高的顺序是: char<int<long<float<double,而在JAVA中的排例顺序就不大清楚了,但从得出结果来看,string型的级别高于int 型的。由于6+6是同一类型的数据,故此相加得12,接着再+“aa”,所以将12强制转换成字符串型,当然再+6也将转换成字符串型,所以最后为"12aa66"
回复 使用道具 举报
+:用来进行字符串的链接,并且字符串数据和任何数据使用+都是相连接关系。
                                                   在操作数字、字符、字符串时是不同的,两个字符相加得到的是码表值,两个字符串相加是字符串,字符串+任何类型数据——>字符串。
                                                        eg: System.out.println("5 + 5 = "+5+5)  ;       结果:5 + 5 = 55
                                                              System.out.println("5 + 5 = "+(5+5)); 结果:5 + 5 = 10
                                                              System.out.println('a'+'b');                            结果:195
                                                              System.out.println("a"+"b");                         结果:ab
回复 使用道具 举报
你这输出语句中有字符串,遇到字符串就把+当成连接来算了
回复 使用道具 举报
从左往右进行计算,
6 + 6 + "aa"+ 6 + 6

先计算  int型的  6+6=12    结果是int型,占四个八位二进制位
再计算  (int)12+(String)"aa",而字符串型内存中占的位数可以无限大,所以int向上转型     结果是  (String)12aa
接下来 +6与第二步同理,结果是 字符串  12aa6
最后再计算  +6    结果就是  字符串  12aa66

结论是:任何数和字符串相加结构都是字符串      这个题主要是运算顺序从左到右

希望对你有所帮助!!

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

回复 使用道具 举报
6的数据类型是int,为整数类型;"aa"的数据类型是String,为字符串类型。当int类型数据和String类型数据用+连接时,int的类型就转型为String类型。所以6 + 6 + "aa"+ 6 + 6这个表达式的结果就是字符串,即12aa12。
回复 使用道具 举报
  1. public static void main(String[] args) {

  2. System.out.println(6 + 6 + "aa"+ 6 + 6);



  3. }
复制代码
i这里的加号是连接符 。6+ 6 先进行计算 = 12, 然后12 和 字符串类型的“aa”,数字和字符串想加,数字自动转换成字符串。也就是12aa这个字符串和后面的6连接,后面的+也是连接符,所以就是12aa66.相当于拼接字符串。。
回复 使用道具 举报
当字符串用"+"和其他数据连接时,类型强制转化成字符串类型。
运算如下
6 + 6 + "aa"+ 6 + 6
12   +  "aa"+ 6 + 6
12aa66
回复 使用道具 举报
6 + 6 + "aa"+ 6 + 6
6 + 6=12     12+"aa" l连成串12aa  +6  成串12aa6
结果就是12aa66
l例如
System.out.println(22+22+"22");//输出:4422               
System.out.println(22+"22"+22);//输出:222222
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马