字符型

字符型

字符型 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 型变量赋值的三种方式

  1. 字符字面值:char c = '盟';
  2. 整数字面值(0~65535):char c = 65; (对应字符 'A')
  3. 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 = ' '; 是有效的。单引号中不能为空,也不能放多个字符。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注