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);