黑马程序员技术交流社区

标题: 字符和字符串,你真的理解了吗? [打印本页]

作者: huangxuanheng    时间: 2014-9-9 18:54
标题: 字符和字符串,你真的理解了吗?
下面一段代码,大家认为打印出什么?_?
public class  A{
public static void main(String[]args){
System.out.println("H"+"a");
System.out.prinln('H'+'a');
}
}

作者: hike_2008    时间: 2014-9-9 18:56
Ha  和  169
作者: huangxuanheng    时间: 2014-9-9 21:31
不错,你能找出理由吗?怎么解析呢?
作者: wawsc5354524    时间: 2014-9-10 15:09
huangxuanheng 发表于 2014-9-9 21:31
不错,你能找出理由吗?怎么解析呢?

第一个数Ha,因为是字符串,+是字符串的连接操作,第二组是一个整型的数字,因为H和a会找出对应的是ASCII码值,所以第二个输出一个数字.完了
作者: MR.Sun    时间: 2014-9-10 16:54
应该是Ha'H'的ASCII码值加上‘a’的ASCII码值
作者: huangxuanheng    时间: 2014-9-10 17:28
wawsc5354524 发表于 2014-9-10 15:09
第一个数Ha,因为是字符串,+是字符串的连接操作,第二组是一个整型的数字,因为H和a会找出对应的是ASCII码值 ...

是的,字符串的+是把字符串连接起来,而字符中的+是把字符转换为int型进行两个数的相加操作,因为int类型的优先级比char类型高,所以进行的是加操作
作者: huangxuanheng    时间: 2014-9-10 17:31
MR.Sun 发表于 2014-9-10 16:54
应该是Ha'H'的ASCII码值加上‘a’的ASCII码值

是 的..............
作者: 爽朗的菜籽    时间: 2014-9-10 22:15
学习了:victory:
谢谢楼主大大
作者: JerryJava    时间: 2014-9-11 08:16
不错。谢谢
作者: huanhuan    时间: 2014-9-11 08:47
应该是Ha和169,第一个双引号,表示字符串,直接相连,第二个是单引号,表示单个字符,先转换成ASCII码值,再把值进行相加。
作者: huangxuanheng    时间: 2014-9-11 23:09
huanhuan 发表于 2014-9-11 08:47
应该是Ha和169,第一个双引号,表示字符串,直接相连,第二个是单引号,表示单个字符,先转换成ASCII码值, ...

真棒真棒




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