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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小朱 中级黑马   /  2014-11-24 15:25  /  2777 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  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
复制代码

想知道这些区别

评分

参与人数 1黑马币 +3 收起 理由
杨佳名 + 3 淡定

查看全部评分

13 个回复

倒序浏览
它是按顺序来的,首先是前计算前两个,其中如果有字符串“”,那么就按字符串相加,
‘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

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

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1 赞一个!

查看全部评分

回复 使用道具 举报
zhouyunfang 发表于 2014-11-24 15:40
它是按顺序来的,首先是前计算前两个,其中如果有字符串“”,那么就按字符串相加,
‘a’是字符,不是字符 ...

String s6 = 1+'2'+3+"HelloWorld";             //54HelloWorld
这个解释下吧
回复 使用道具 举报
呵呵,在举个例子:
int a = '1';
System.out.println(a);     //49
在String s6 = 1 + '2' +3+"HelloWorld";中的 '2'返回 的是ASC码 ,你的名字也是有的哟,你可以试一下。
:handshake
回复 使用道具 举报
DamonZh 来自手机 中级黑马 2014-11-24 17:08:38
报纸
小朱 发表于 2014-11-24 16:24
String s6 = 1+'2'+3+"HelloWorld";             //54HelloWorld
这个解释下吧

字符2对应的值应该是50 所以先进行1+50+3=54 然后将54和字符串想连接  最后就是54helloworld咯
回复 使用道具 举报
DamonZh 发表于 2014-11-24 17:08
字符2对应的值应该是50 所以先进行1+50+3=54 然后将54和字符串想连接  最后就是54helloworld咯 ...

明白了 一下子没想到ascall码
回复 使用道具 举报
在与到字符串之前是加法运算,+字符串之后全部是连接符……
回复 使用道具 举报
遇到字符串才会转换成字符串,字符串之前 该怎么算就怎么算
回复 使用道具 举报
a +“字符串”+ b     都是连接符而已。a+b 这样才是起到加法运算。
回复 使用道具 举报
数据转换问题,如果前面有String类型的,那么后面的int也会转成String类型
回复 使用道具 举报

若输出语句中 字符与数字相加 则会 使字符自动转换为对应得int值 然后在于int 计算 ,但是若是字符串 与数字相加则会是一个链接字符串 效果。若是两个数字在前面 则会先计算数字得和再与字符串相连 。

点评

其中如果有字符串“”,那么就按字符串相加  发表于 2014-11-25 09:28
回复 使用道具 举报 1 0
优先级问题,可以学一下运算符优先级
回复 使用道具 举报
路过,顺便学习一下~~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马