第一章 面向对象
第二章 异常
第三章 数组
第四章 常用类
第五章 集合
第六章 IO流
第七章 线程
第八章 反射
第九章 Socket编程

java字符型详解

 

字符型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编码。

 

全部教程