黑马程序员技术交流社区

标题: 输出语句的加号问题 [打印本页]

作者: 小朱    时间: 2014-11-24 15:25
标题: 输出语句的加号问题
  1. System.out.println('a'+1);//98
  2. System.out.println(“”+'a'+1);//a1

  3. System.out.println("abc"+3+2); //  abc32
  4. System.out.println(3+2+"abc"); //5abc
复制代码

想知道这些区别
作者: zhouyunfang    时间: 2014-11-24 15:40
它是按顺序来的,首先是前计算前两个,其中如果有字符串“”,那么就按字符串相加,
‘a’是字符,不是字符串,所以基于你的我也写了个小例子希望能帮助到你:
                String s2 = "123HelloWorld";                      //123HelloWorld
                String s3 = "123"+"Hello"+"World";           //123HelloWorld
                String s4 = 1+"23HelloWorld";                    //123HelloWorld
                String s5 = 1+2+3+"HelloWorld";               //6HelloWorld
                String s6 = 1+'2'+3+"HelloWorld";             //54HelloWorld
                String s7 = "1"+2+"3HelloWorld";               //123HelloWorld
                String s8_1 = "123";                                    
                String s8_2 = "HelloWorld";
                String s8 = s8_1 + s8_2;                                //123HelloWorld

我知道的就这几种情况了,共同进步吧!


作者: 小朱    时间: 2014-11-24 16:24
zhouyunfang 发表于 2014-11-24 15:40
它是按顺序来的,首先是前计算前两个,其中如果有字符串“”,那么就按字符串相加,
‘a’是字符,不是字符 ...

String s6 = 1+'2'+3+"HelloWorld";             //54HelloWorld
这个解释下吧
作者: zhouyunfang    时间: 2014-11-24 16:43
呵呵,在举个例子:
int a = '1';
System.out.println(a);     //49
在String s6 = 1 + '2' +3+"HelloWorld";中的 '2'返回 的是ASC码 ,你的名字也是有的哟,你可以试一下。
:handshake
作者: DamonZh    时间: 2014-11-24 17:08
小朱 发表于 2014-11-24 16:24
String s6 = 1+'2'+3+"HelloWorld";             //54HelloWorld
这个解释下吧

字符2对应的值应该是50 所以先进行1+50+3=54 然后将54和字符串想连接  最后就是54helloworld咯
作者: 小朱    时间: 2014-11-24 17:43
DamonZh 发表于 2014-11-24 17:08
字符2对应的值应该是50 所以先进行1+50+3=54 然后将54和字符串想连接  最后就是54helloworld咯 ...

明白了 一下子没想到ascall码
作者: 迷失的小Z    时间: 2014-11-24 18:27
在与到字符串之前是加法运算,+字符串之后全部是连接符……
作者: g124989452    时间: 2014-11-24 18:59
遇到字符串才会转换成字符串,字符串之前 该怎么算就怎么算
作者: jcde2014    时间: 2014-11-24 19:06
a +“字符串”+ b     都是连接符而已。a+b 这样才是起到加法运算。
作者: wxnzb502    时间: 2014-11-24 21:51
数据转换问题,如果前面有String类型的,那么后面的int也会转成String类型
作者: sunyeyu    时间: 2014-11-24 22:04

若输出语句中 字符与数字相加 则会 使字符自动转换为对应得int值 然后在于int 计算 ,但是若是字符串 与数字相加则会是一个链接字符串 效果。若是两个数字在前面 则会先计算数字得和再与字符串相连 。
作者: FlyFish    时间: 2014-11-25 09:44
优先级问题,可以学一下运算符优先级
作者: Afridoce    时间: 2014-11-25 10:55
路过,顺便学习一下~~~




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