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

小麻

中级黑马

  • 黑马币:27

  • 帖子:100

  • 精华:0

© 小麻 中级黑马   /  2015-5-18 23:33  /  3020 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

5黑马币
class Test
{
public  static void  main(String[] args)
{
       System.out.println(““+’a’+1);
}
}
打印出来的结果 为什么不是98 而是a1

最佳答案

查看完整内容

系统首先算的是" "+'a'会将'a'转化成字符串参与运算,因为" "是字符串 。得到” a“ ; 再算" a"+1,系统会将1转化成对应的字符串运算,所以结果是a1,如果前面不加上" ",'a就不转化为字符串参与运行,转化为整型参与运算得到98:)

11 个回复

倒序浏览
系统首先算的是" "+'a'会将'a'转化成字符串参与运算,因为" "是字符串 。得到” a“   ;  再算" a"+1,系统会将1转化成对应的字符串运算,所以结果是a1,如果前面不加上" ",'a就不转化为字符串参与运行,转化为整型参与运算得到98:)
回复 使用道具 举报
'a'是char类型,能够直接参与整数运算。‘a’+1=98整数转换成字符串有多种方法,其中有一种就是 int i; i+""(让整数与一个字符串相加)。所以“”+’a’+1=a1;  帮你找的  你参考下  希望帮到你
回复 使用道具 举报
记住这个结论就行了:字符串跟8大基本数据类型做拼接时,基本数据类型都会装换成字符串。至于为什么?这就要问发明Java的人了
回复 使用道具 举报
有学到一个知识点
回复 使用道具 举报
+是连接字符串的,什么东西都串起来
回复 使用道具 举报
你得现将a转化成对于的ASCII码,再输出
class Test
{
public  static void  main(String[] args)
{
       char c   =   'a';
       int  b   =   c; //字符的ascii码值
       System.out.println("ascii结果是"+(b+1));//要加括号,运算是从左到右顺序
}
}
回复 使用道具 举报
+:
①当左右两边连接的都是非数字类型时,则为连接符;
②当一边是数值类型,另一边是非数值类型时,则为连接符;
③当两边都是数值类型时,则为运算符,即相加求和的作用。
应该也是从左到右把!!想让他是98,应该加括号
回复 使用道具 举报
牛奋 来自手机 中级黑马 2015-5-19 13:19:56
9#
境界还不够啊,这种小知识点好纠结,开始只能记规律了,等掌握知识多了再分析吧,这知识点我记下了。
回复 使用道具 举报
牛奋 发表于 2015-5-19 13:19
境界还不够啊,这种小知识点好纠结,开始只能记规律了,等掌握知识多了再分析吧,这知识点我记下了。 ...

我也是刚看 到这   加油  
回复 使用道具 举报
来赚黑马币
回复 使用道具 举报
如果没错的话,是不是加了空格的那引号
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马