黑马程序员技术交流社区

标题: java三元运算符??大牛你造吗? [打印本页]

作者: 小雨皮    时间: 2016-6-16 23:20
标题: java三元运算符??大牛你造吗?
public static void main(String [] args){       
                StringBuffer s=new StringBuffer();
                s.append(1>5?100:'A');
                s.append(6>5?90:'B');
                System.out.println(s);
        }为什么结果是AZ,不是A90???

作者: TCK8888    时间: 2016-6-16 23:39
StringBuffer的方法append()可以重载这些方法,可以接受任意类型的数据,只不过是将这些数据已字符串的形式追加到此字符序列,将90转换为z
作者: tianzhu2725    时间: 2016-6-17 18:28
进来学习的
作者: wsl123456    时间: 2016-6-17 20:19
长知识了
作者: 云袭    时间: 2016-6-17 21:48
使用三元运算符,两边的操作数的类型不一致的时候,会自动转换
作者: 涟漪不起    时间: 2016-6-18 12:38
刚发现…
作者: qq6505520    时间: 2016-6-18 13:27
学习了!!
作者: sgzqsw    时间: 2016-6-19 11:13
本帖最后由 sgzqsw 于 2016-6-19 11:18 编辑

考的还是字符里面的类型什么时候转换。
作者: 死灰复燃    时间: 2016-6-19 13:13
又知道了不知道的知识了
作者: 懂得珍惜    时间: 2016-6-19 17:07
对象s只能存储字符串类型的东西,添加第二个的时候已经自动转换了类型
作者: 一个大西瓜    时间: 2016-6-19 17:39
学习了!!!!
作者: 745661590    时间: 2016-6-19 19:27
90 在ASCII码中是Z对应值是90   因为输出的是 将 char 参数的字符串表示形式追加到此序列。
作者: 745661590    时间: 2016-6-19 19:29
745661590 发表于 2016-6-19 19:27
90 在ASCII码中是Z对应值是90   因为输出的是 将 char 参数的字符串表示形式追加到此序列。 ...

你可以查看一下StringBuffer API文档  里面对append 说的很清楚 都是将字符串表示形式追加到此序列。




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