字符
字符
大多数情况下,如果您使用的是单个字符值,您将使用原始 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
类中一些最常用的方法,但并不详尽。有关此类中所有方法的完整列表(超过 50 个),请参阅 Character
API 规范。
boolean isLetter(char ch)
和boolean isDigit(char ch)
:分别确定指定的char
值是否为字母或数字。boolean isWhitespace(char ch)
:确定指定的char
值是否为空格。boolean isUpperCase(char ch)
和boolean isLowerCase(char ch)
:分别确定指定的char
值是否为大写或小写。char toUpperCase(char ch)
和char toLowerCase(char ch)
:返回指定char
值的大写或小写形式。toString(char ch)
:返回一个String
对象,表示指定的字符值,即一个字符的字符串。
字符和码点
从 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 位编码。因此,它可以表示从 0x0000
到 0xFFFF
的数字。这组字符有时被称为基本多语言平面 (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 日