黑马程序员技术交流社区

标题: 一个小问题 [打印本页]

作者: 小麻    时间: 2015-5-18 23:33
标题: 一个小问题
class Test
{
public  static void  main(String[] args)
{
       System.out.println(““+’a’+1);
}
}
打印出来的结果 为什么不是98 而是a1


作者: mars_b0ZZ0    时间: 2015-5-18 23:33
系统首先算的是" "+'a'会将'a'转化成字符串参与运算,因为" "是字符串 。得到” a“   ;  再算" a"+1,系统会将1转化成对应的字符串运算,所以结果是a1,如果前面不加上" ",'a就不转化为字符串参与运行,转化为整型参与运算得到98:)
作者: aSmallStone    时间: 2015-5-18 23:37
'a'是char类型,能够直接参与整数运算。‘a’+1=98整数转换成字符串有多种方法,其中有一种就是 int i; i+""(让整数与一个字符串相加)。所以“”+’a’+1=a1;  帮你找的  你参考下  希望帮到你
作者: JavaStudy770    时间: 2015-5-18 23:59
记住这个结论就行了:字符串跟8大基本数据类型做拼接时,基本数据类型都会装换成字符串。至于为什么?这就要问发明Java的人了
作者: 开弓没有回头箭    时间: 2015-5-19 00:03
有学到一个知识点
作者: 枕寒流    时间: 2015-5-19 08:02
+是连接字符串的,什么东西都串起来
作者: 精灵来了    时间: 2015-5-19 08:57
你得现将a转化成对于的ASCII码,再输出
class Test
{
public  static void  main(String[] args)
{
       char c   =   'a';
       int  b   =   c; //字符的ascii码值
       System.out.println("ascii结果是"+(b+1));//要加括号,运算是从左到右顺序
}
}
作者: 笔墨痕干    时间: 2015-5-19 10:41
+:
①当左右两边连接的都是非数字类型时,则为连接符;
②当一边是数值类型,另一边是非数值类型时,则为连接符;
③当两边都是数值类型时,则为运算符,即相加求和的作用。
应该也是从左到右把!!想让他是98,应该加括号
作者: 牛奋    时间: 2015-5-19 13:19
境界还不够啊,这种小知识点好纠结,开始只能记规律了,等掌握知识多了再分析吧,这知识点我记下了。
作者: 小麻    时间: 2015-5-19 17:34
牛奋 发表于 2015-5-19 13:19
境界还不够啊,这种小知识点好纠结,开始只能记规律了,等掌握知识多了再分析吧,这知识点我记下了。 ...

我也是刚看 到这   加油  
作者: yangengjie    时间: 2015-5-20 21:15
来赚黑马币
作者: guojiadui    时间: 2015-5-27 15:19
如果没错的话,是不是加了空格的那引号




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