2.3 字符变量

字符类型char,是Java编程语言的基础类型之一。也是后面要学习的String类型的基础。
字符类型char,代表一个字符,它的特点是用一对单引号引着。char类型的变量和某个整数是一一对应的关系,所以字符型变量可以直接转化成整数。例如下面的代码,c这个变量的值是小写字母a(注意不是变量a);b这个变量赋值错误,因为双引号是字符串变量不是字符变量;d变量错在不能把两个字符赋值给一个字符变量。
char c='a';
//这里会出错
char b="b";
char d='ab';
要理解字符变量,首先就要理解ASCII码。ASCII 是American Standard Code for Information Interchange(美国信息交换标准代码)的简称。码表就是一个整数和字符一一对应的表格,基本是西欧字符,还有escape、enter这些“看不见”的字符。每一个字符,都对应一个数字,例如字符a对应97(97是十进制,十六进制的话就是50),字符9对应57。如图所示:
单引号里面只能有一个字符。字符除了能看得见得字符,还有一些“看不见”的字符,例如转行字符,tab键等等。这里面我们要特别注意的是转行。转行字符是这样的:
char c='\n';
注意这里并没有违反字符变量只有一个字符的规则,“\”叫做转义字符,它必须和某些字母组合起来,用来表达一些特殊的字符,常用的如下表所示:
转义字符
意义
ASCII码值(十进制)
\a
响铃(BEL)
007
\b
退格(BS) ,将当前位置移到前一列
008
\f
换页(FF),将当前位置移到下页开头
012
\n
换行(LF) ,将当前位置移到下一行开头
010
\r
回车(CR) ,将当前位置移到本行开头
013
\t
水平制表(HT) (跳到下一个TAB位置)
009
\v
垂直制表(VT)
011
\\
代表一个反斜线字符''\'
092
\'
代表一个单引号(撇号)字符
039
\"
代表一个双引号字符
034
\?
代表一个问号
063
\0
空字符(NUL)
000
由于所有字符,都代表一个整数,所以可以把字符类型当做整数来使用,可以把一个字符直接赋值给一个整型变量
例如下面: c直接赋给i,我们打印这个i,就得到字符c的ASCII码背后的十进制数字。试一下看看打印什么。
char c='\t';
int i=c;
System.out.println(i);