JAVA数据类型中的char类型


1、JAVA中,char占2字节,16位。可在存放汉字

2、char赋值

char a='a'; //任意单个字符,加单引号。

char a='中';//任意单个中文字,加单引号。

char a=111;//整数。0~65535。十进制、八进制、十六进制均可。输出字符编码表中对应的字符。

注:只能放单个字符。

3、char运算

char类型是可以运算的因为char在ASCII等字符编码表中有对应的数值。

在JAVA中,对char类型字符运行时,直接当做ASCII表对应的整数来对待。

扫描二维码关注公众号,回复: 5753353 查看本文章

示例1:

char m='a';                               -->a

char m='a'+'b';                          -->?            //char类型相加,提升为int类型,输出对应的字符(a和b分别对应

                                                                           的数值为97和98,相加等于195,其对应的字符为 ?)。

int m='a'+'b';                             -->195        //195没有超出int范围,直接输出195。

char m=197;                             -->?            //输出字符编码表中对应的字符。

char m='197;                            -->报错       //因为有单引号,表示是字符,只允许放单个字符。

char m='a'+1;                           -->b             //提升为int,计算结果98对应的字符是b。

char m='中'+'国';                      -->42282

char m='中'+'国'+'国'+'国';          -->报错         //int转char有损失。因为结果已经超出char类型的范围。

int m='中'+'国'+'国'+'国';           -->86820

char m='中'+1;                         -->丮            //1是int,结果提升为int,输出对应的字符。

char m='中'+"国";                       -->报错         //String无法转换为char。

System.out.println('中'+"国");  -->中国         //没有变量附值的过程。String与任何字符用“+”相连,转换为String。

示例2:

char a = 97;                                 -->为char类型变量 a 赋值常量值 97。

char b = 'a'+3;                             -->d               // 97+3=100,ASCII对应的字符为 d。

char c = a+3;                               -->报错        //无法从int类型转换为char类型,接下来让我们了解下为什么会不

                                                                         能这样运算:

        首先,我们先知道在jvm内存机制中,char类型数据运算是将字符在ASCII表对应的整数以int类型参与运算(可以认为' a '=97),常量(97)与常量(3)运算得到一个新的常量(100),常量赋值给变量(b),不存在强制转换,只要这个接受变量(b)的类型范围大于这个常量即可。而变量声明时需要定义数据类型(例:char a),内存就为这个变量划分一个char类型大小的空间,其中变量(a)的值是可变的,而常量(3)的值是不变的,两个运算得到的还是一个变量,本例中(a+3)是int类型的变量,而int类型变量(a+3)赋值给char类型变量(c)需要强制转换,因此会报错。

char c=(char)(a+3);                   -->d    

                                                           

 
 

总结:

用单引号' '标识,只能放单个字符。

char+char,char+int——类型均提升为int,附值char变量后,输出字符编码表中对应的字符。

猜你喜欢

转载自www.cnblogs.com/ntyvictory/p/10645069.html