字符型char在java语言中占用2个字节,char类型的字面量必须使用半角的单引号括起来,取值范围为[0-65535],char和short都占用2个字节,但是char可以取到更大的正整数,因为char类型没有负数。java语言中的char类型变量可以容纳一个汉字。请看以下程序:
public class CharTest01 {
public static void main(String[] args) {
char c1 = 'a';
System.out.println(c1);
System.out.println(c1 + 1);
char c2 = '中';
System.out.println(c2);
char c3 = "中";
System.out.println(c3);
char c4 = 97;
System.out.println(c4);
}
}
编译报错:
图4-1:编译报错
以上代码编译报错:原因是类型不兼容,使用双引号括起来的一定是字符串类型,不能赋值给char类型的变量。将错误代码注释之后并运行:
运行结果如下图所示:
图4-2:char类型测试
我来解释一下以上的输出结果:c1 + 1为什么是98呢?因为c1是char类型,1是int类型,char类型和int类型混合运算的时候char类型会自动转换成int类型,然后再做运算,a对应的ASCII码是97,所以最终结果是98。另外还有一行代码char c4 = 97,由于c4是char类型,所以会把97看做ASCII码,所以c4是’a’字符。
接下来,我们来看一看关于转义字符:\,请看以下代码:
public class CharTest02 {
public static void main(String[] args) {
char c1 = 't';
System.out.println("这是一个普通的字符 = " + c1);
char c2 = '\t';
System.out.println("abc" + c2 + "def");
}
}
编译通过了,并且运行结果如下图所示:
图4-3:\t
表面看起来’\t’是由两个字符构成,按说应该编译报错,因为它毕竟是一个字符串,最终的结果编译通过了,这还是说明’\t’是一个字符,所以\具有转义功能,根据以上输出结果可以看出\t是制表符。接下来我们来看一看其它的转义字符。
public class CharTest03 {
public static void main(String[] args) {
System.out.println("换行符 = hello\nworld");
System.out.println("普通的单引号 = " + '\'');
System.out.println("普通的斜杠=" + '\\');
System.out.println("普通的双引号=" + "\"");
System.out.println('\u4e2d');
}
}
运行结果如下图所示:
图4-4:转义字符
通过以上的测试:\n表示换行符,\’表示普通的单引号字符,\\表示一个普通的\字符,\”表示一个普通的双引号字符,\u后面的十六进制是文字的Unicode编码。