字符型
字符型 char 占用两个字节,采用 Unicode 字符集编码。每个字符对应一个码,表现形式是字符 char,本质上是 int 类型值(范围 0~65535)。
ASCII 码
ASCII(American Standard Code for Information Interchange:美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,共定义了 128 个字符。
常用 ASCII 码对照:
| 字符 | 十进制值 |
|---|---|
'a' | 97 |
'A' | 65 |
'0' | 48 |
ASCII 码范围 0~127,只能表示英文字母和一些基本符号。比如”北盟网校”的”北”字对应的 Unicode 编码是 21271,已经超出了 ASCII 的范围。
可以在线测试 Unicode 编码:http://tool.chinaz.com/tools/unicode.aspx
字符的表示形式
字符放在单引号中,如 'A'、'北'。注意单引号中只能有一个字符,没有或多个都不行。
对于一些特殊字符(如单引号、回车、换行等),需要通过反斜杠 “ 进行转义:
| 转义字符 | 说明 |
|---|---|
\' | 单引号 |
\" | 双引号 |
\\ | 反斜杠 |
\r | 回车 |
\n | 换行 |
Unicode 编码
Unicode 是世界上通用的定长字符集,所有字符统一使用 16 位(2 个字节)表示。字符类型的本质是一个 16 位无符号整数,这个值就是对应字符的编码。
字符的字面值除了用单引号表示,还可以采用十六进制形式,比如 '\u5317' 就是”北”字对应的十六进制 Unicode 编码。
对 char 型变量赋值的三种方式
- 字符字面值:
char c = '盟'; - 整数字面值(0~65535):
char c = 65;(对应字符'A') - Unicode 形式:
char c = '\u5317';(对应字符”北”)
完整示例代码
public static void main(String[] args) {
char c = '\''; // 转义单引号
char c2 = '\r'; // 回车
char c3 = '\\'; // 转义反斜杠
char c4 = '"'; // 转义双引号
char c5 = '北'; // 直接赋值字符
char c6 = 21271; // 用十进制编码赋值
System.out.println(c6); // 输出:北
char c7 = '\u5317'; // 用十六进制 Unicode 赋值
System.out.println(c7); // 输出:北
char c8 = '盟'; // 十进制编码为 30431
System.out.println((int) c8); // 输出:30431
}Code language: JavaScript (javascript)
注意:空格也是一个合法字符,
char c = ' ';是有效的。单引号中不能为空,也不能放多个字符。