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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© fengche 中级黑马   /  2013-10-18 11:42  /  1469 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 fengche 于 2013-10-18 14:46 编辑

public class LastLaugh{
    public static void main(String[] args){
        System.out.print("H"+"a");
        System.out.print('H'+'a');
    }
}
结果是Ha169 这是因为字符与字符之间不能用连接符号吗?

评分

参与人数 1黑马币 +3 收起 理由
周志龙 + 3

查看全部评分

5 个回复

倒序浏览
FFF 金牌黑马 2013-10-18 12:17:29
沙发
  1. System.out.print('H'+'a');
复制代码
你括号里用的是单引号''而不是双引号、单引号是char类型的数据。
H的char=72
a的char=97
72+97=169
回答完毕!
回复 使用道具 举报
是的,因为字符类型数据也是整形数据,所以会进行加法运算,计算的是两个字符所对应的ASCII码值
回复 使用道具 举报
计算机在处理字符类型时,是把这些字符当成不同的整数来看待,因此,严格来说,字符类型也算是整数类型的一种,所以,两个整数间,你“+”,那当然是做加法运算。给字符变量赋值可以使用数值和字符。
回复 使用道具 举报

众所周知,+号除了有加法功能外,最多的就是被用来连接字符串了
System.out.print("H"+"a"); 两边都是字符串 ,连接。
System.out.print('H'+'a');单引号是字符,+法运算。根据自动类型提升原则,char byte short自动提升成int型运算,所以会将H 和a 先转换成ASCII码对应的数字进行相加运算。
回复 使用道具 举报
System.out.print("H"+"a");中双引号" "中的内容表示的是字符串,也就是String类型,任何数据类型碰到String类型的变量或者常量之后都向String类型转换。而这句语句中的+是连接符,用于连接两个字符串。所以打印输出之后是Ha

System.out.print('H'+'a');中单引号' '表示的是字符型数据,根据自动类型转换,char类型会自动提升为int类型,在ASCII码中字符H的值是72,字符a的值是97,这里的+是加法运算,所以最终结果是打印输出169  
{:soso_e183:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马