黑马程序员技术交流社区

标题: java字符 [打印本页]

作者: fengche    时间: 2013-10-18 11:42
标题: java字符
本帖最后由 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 这是因为字符与字符之间不能用连接符号吗?
作者: FFF    时间: 2013-10-18 12:17
  1. System.out.print('H'+'a');
复制代码
你括号里用的是单引号''而不是双引号、单引号是char类型的数据。
H的char=72
a的char=97
72+97=169
回答完毕!
作者: 李文帅    时间: 2013-10-18 12:21
是的,因为字符类型数据也是整形数据,所以会进行加法运算,计算的是两个字符所对应的ASCII码值
作者: Jim-剣◆﹏    时间: 2013-10-18 12:44
计算机在处理字符类型时,是把这些字符当成不同的整数来看待,因此,严格来说,字符类型也算是整数类型的一种,所以,两个整数间,你“+”,那当然是做加法运算。给字符变量赋值可以使用数值和字符。
作者: kellyzyb    时间: 2013-10-18 14:24

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

System.out.print('H'+'a');中单引号' '表示的是字符型数据,根据自动类型转换,char类型会自动提升为int类型,在ASCII码中字符H的值是72,字符a的值是97,这里的+是加法运算,所以最终结果是打印输出169  
{:soso_e183:}





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