javaSE基础篇之char

以下为个人观点及网上总结:
1:概念
char字符类型,八大基本类型的一种;2字节16位,在java中一个汉字或一个任意英文字符;
2:关于char为整数型

char n='好';
int k=(int)n;//类型转换
System.out.println(k);//结果为22909
/*
因为char在Ascll等字符编码中有对应的数值
**/

3:声明

//声明1
char a='a';//任意单个字符;加单引号
char a='好’;//任意中文字,加单引号
//声明2
char a=22909//整数为D(十进制) B(二进制) H(十六进制) O(八进制)均可,输出为对应编码表的字符

4:运算(右面为输出的类型)
//在char赋值情况下
单 ------字符
单+单 -------int型//在char范围内
单+数字 ------------int型
//在int赋值情况下
单+单= ----------int型
(上面的单指的是单引号里的值可为字符可为数字)
总之:在可续范围内,char可转为整数
以下例子来源于
(https://blog.csdn.net/ibelieve618/article/details/54948729)

char m='a';  ——a。
char m='a'+'b';  ——Ã。  //char类型相加,提升为int类型,输出对应的字符。注,在CMD.exe用输出结果是问题?,不同的编码输出显示不一样。Eclipse中须改成UTF-8。
int m='a'+'b';   ——195。//195没有超出int范围,直接输出195。
char m='a'+b;  ——报错。//因为b是一个赋值的变量。
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。

猜你喜欢

转载自blog.csdn.net/weixin_42753193/article/details/83928746