系列中的上一篇
当前教程
字符
系列中的下一篇

系列中的上一篇: 数字

系列中的下一篇: 字符串

字符

 

字符

大多数情况下,如果您使用的是单个字符值,您将使用原始 char 类型。例如

char ch = 'a'; 
// Unicode for uppercase Greek omega character
char uniChar = '\u03A9';
// an array of chars
char[] charArray = { 'a', 'b', 'c', 'd', 'e' };

但是,有时您需要将 char 用作对象,例如,作为需要对象的函数参数。Java 编程语言提供了一个包装类,用于将 char “包装”在一个 Character 对象中,以实现此目的。Character 类型的对象包含一个名为 char 的字段。这个 Character 类还提供了一些有用的类(即静态)方法来操作字符。

您可以使用 Character 构造函数创建 Character 对象

Character ch = new Character('a');

在某些情况下,Java 编译器也会为您创建 Character 对象。例如,如果您将原始 char 传递给需要对象的函数,编译器会自动将 char 转换为 Character。此功能称为_自动装箱_,或者如果转换反向进行,则称为_拆箱_。有关自动装箱和拆箱的更多信息,请参阅自动装箱和拆箱部分。

注意:Character 类是不可变的,因此一旦创建,Character 对象就不能更改。

下表列出了 Character 类中一些最常用的方法,但并不详尽。有关此类中所有方法的完整列表(超过 50 个),请参阅 Character API 规范。

 

字符和码点

从 JDK 1.0.2 开始,Java 平台就支持 Unicode 标准。Java SE 15 支持 Unicode 13.0。char 数据类型和 Character 类基于原始 Unicode 规范,该规范将字符定义为固定宽度 16 位实体。Unicode 标准已更改,以允许表示需要超过 16 位的字符。合法码点的范围现在是 U+0000 到 U+10FFFF,称为 Unicode 标量值。

char 值使用 16 位编码。因此,它可以表示从 0x00000xFFFF 的数字。这组字符有时被称为基本多语言平面 (BMP)。码点大于 0xFFFF(记为 U+FFFF)的字符称为补充字符

因此,char 值表示基本多语言平面 (BMP) 码点。int 值表示所有 Unicode 码点,包括补充码点。除非另有说明,否则关于补充字符和代理字符值的行为如下

  • 仅接受 char 值的方法不支持补充字符。它们将代理范围内的 char 值视为未定义的字符。
  • 接受 int 值的方法支持所有 Unicode 字符,包括补充字符。

您可以参考 Character 类的文档以获取更多信息。

 

转义序列

以反斜杠 (\) 开头的字符是转义序列,对编译器有特殊含义。下表显示了 Java 转义序列

转义序列 描述
\t 在此处插入文本中的制表符。
\b 在此处插入文本中的退格符。
\n 在此处插入文本中的换行符。
\r 在此处插入文本中的回车符。
\f 在此处插入文本中的换页符。
\' 在文本中插入单引号字符。
\" 在文本中插入双引号字符。
\\ 在文本中插入反斜杠字符。

在打印语句中遇到转义序列时,编译器会相应地解释它。例如,如果您想在引号中添加引号,则必须在内部引号上使用转义序列 "。要打印句子

She said "Hello!" to me.

您将编写

System.out.println("She said \"Hello!\" to me.");

上次更新: 2021 年 9 月 14 日


系列中的上一篇
当前教程
字符
系列中的下一篇

系列中的上一篇: 数字

系列中的下一篇: 字符串