字符类型(char)用于存储单个字符,占用16位(两个字节)的内存空间。在定义字符型变量时,要以单引号表示,例如 's' 表示一个字符。而 "s" 则表示一个字符串,虽然它只有一个字符,但由于使用双引号,所以它仍然表示字符串,而不是字符。
使用char关键字可定义字符变量。
例 声明字符型变量,实例代码如下:
char x ='a';
由于字符a在unicode表中的排序位置是97。因此,允许将上面的语句写成:
char x = 97;
同C、C++语言一样,Java语言也可以把字符作为整数对待。由于unicode编码采用无符号编码,可以存储65536个字符(0x0000)~0xffff),所以Java中的字符几乎可以处理所有国家的语言文字。若想得到一个0~65536之间的数所代表的unicode表中的相应位置上的字符,也必须使用char型显示转化。
例 在项目中创建类Gess,编写如下代码,实现将unicode表上某些位置上的字符以及一些字符在unicode表中的位置在控制台上输出。
public class Gess { //定义类Examlpe
public static void main(String[] args) { //主方法
char word = 'd', word2 = '@'; //定义char型变量
int p = 23045, p2 = 45213; //定义int型变量
System.out.println("d在unicode表中的顺序位置是:" + (int) word);
System.out.println("@在unicode表中的顺序位置是:" + (int) word2);
System.out.println("unicode表中的第23045位是:" + (char) p);
System.out.println("unicode表中的第45213位是:" + (char) p2);
}
}
运行结果如图1所示。
图1 实例的运行结果
转义字符是一种特殊的字符变量。转义字符以反斜线“\”开头,后跟一个或多个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”。例如,printf函数的格式串中用到的“\n”就是一个转义字符,意思是“回车换行”。Java中转义字符如表1所示。
表1 转义字符表
转义字符 |
含义 |
\ddd |
1到3位8进制数据所表示的字符,如:\456 |
\dxxxx |
4位16进制所表示的字符,如:\0052 |
\’ |
单引号字符 |
\\ |
反斜杠字符 |
\t |
垂直制表符,将光标移到下一个制表符的位置 |
\r |
回车 |
\n |
换行 |
\b |
退格 |
\f |
换页 |
将转义字符赋值给字符变量时,与字符常量值一样需要使用单引号将转义字符括起来。
例,分别为字符变量c1赋值为'\\'、字符变量c2赋值为'\''、字符变量c3赋值为'\115'、字符变量c4赋值为'\u0052',字符变量c5赋值为'\u2605',然后输出。
char c1='\\'; //为变量c1赋值转义字符“\\”
char c2='\''; //为变量c2赋值转义字符“\'”
char c3='\115'; //为变量c3赋值转义字符“\
char c4='\u0052'; //为变量c4赋值转义字符“\u
char c5='\u2605'; //为变量c5赋值转义字符“\u
System.out.println(c1); //输出结果为:\
System.out.println(c2); //输出结果为:'
System.out.println(c3); //输出结果为:M
System.out.println(c4); //输出结果为:R
System.out.println(c5); //输出结果为:★
说明:unicode代码\u0052表示字符R,而unicode代码\u2605表示字符★。
上面的代码,在控制台输出的结果如图2所示。
图2 控制台输出结果
例 在Java中,对字符变量进行如下的赋值也是合法的:
char char1='B'+1; //将字符常量值'B'与十进制整数1相加的结果赋给字符变量char1
char char2='B'+'1'; //将两个字符常量值'B'与'1'相加的结果赋给字符变量char2
char char3=24+76; //将两个十进制整数24与76相加的结果赋给字符变量char3
char char4='n'-32; //该操作将得到大写的字母N,'N'+32将得到小写的字母n
System.out.println(char1); //输出结果为:C
System.out.println(char2); //输出结果为:s
System.out.println(char3); //输出结果为:d
System.out.println(char4); //输出结果为:N
上面的代码,在控制台输出的结果如图3所示。
图3 控制台输出结果
例 在输出语句中使用转义字符,实例代码如下:
public class Temp
{
public static void
main(String[] args) {
System.out.println("\102"); // 八进制编码的字符
System.out.println("\u0042"); // 十六进制编码的字符
System.out.println("苹果\t橘子\t香蕉"); // 使用制表符分割
System.out.println("\\字符是反斜杠"); // 输出反斜杠
System.out.println("\n换行字符"); // 输出回车
}
}
实例运行结果如图4所示。
图4 实例运行结果