黑马程序员技术交流社区

标题: 字符问题 [打印本页]

作者: xxzlhx    时间: 2015-3-9 14:19
标题: 字符问题
字符串数据和任何数据使用+都是相连接,最终都会变成字符串。
System.out.println("5+5="+5+5);  //5+5=55
System.out.println("5+5="+(5+5));//5+5=10
上面的两个例子哪位能给我解释一下吗?我脑子还是理解不了。
作者: wenhb    时间: 2015-3-9 14:34
System.out.println("5+5="+5+5);  //5+5=55
大楷这里的"5+5="+5+5最后面的加号是连接而不是加法运算
作者: 1021361407    时间: 2015-3-9 14:48
双引号中是字符串,加号是字符串拼接,(5+5)没有双引号不能作为字符串输出啊,只能作为常量,so。。。
作者: 白春秋    时间: 2015-3-9 16:27
这两个输出主要看后面5+5的运算级,加上括号具有优先级,和数学运算类似
作者: yangruijing    时间: 2015-3-9 19:38
"5+5="+5+5是把两个字符5连接,"5+5="+(5+5)添加了括号以后,5+5的优先级提高,先对5+5进行算数运算,
所以输出结果分别是55和10
作者: zailushang326    时间: 2015-3-9 19:59
System.out.println("5+5="+5+5); //"5+5="为字符串,+号时将5向上转型,变为字符串,编程字符串5+5=5,再使用+,前面同为字符串,故最后结果为5+5=55
作者: zailushang326    时间: 2015-3-9 20:03
System.out.println("5+5="+5+5); //"5+5="为字符串,+号时将5向上转型,变为字符串,编程字符串5+5=5,再使用+,前面同为字符串,故最后结果为5+5=55;System.out.println("5+5="+(5+5));//()优先级比较高,进行算术运算,然后再转型字符串型,得出最后结果
作者: 栗子木头    时间: 2015-3-9 21:27
System.out.println("5+5="+5+5); //"5+5="这是字符串,字符用+号链接,此时+号就是链接字符的,所以第一个遇见的5变为字符串,连接之后形成“5+5=5”,然后这个字符串又碰到+号,继续将第二个5变成字符串,从而变成5+5=55。System.out.println("5+5="+(5+5));//5+5=10,因为()的运算优先级比较高,所以先算()内的,则变成“5+5=”+10,此时原理同上一个,10也变成了字符串与“5+5=”相连接。这个就是俩个的差异,数据类型的转换问题。希望解答对你有帮助。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2