字符
Char 类型使用 1 个 UTF-16 码元(Code Unit), 表示单个字符.
Char 用于表示单个字符值, 例如字母, 数字, 标点符号, 或空白字符. 对于字符序列, 请使用 String.
语法
要声明一个字符, 请将值用单引号 (' ') 括起. 可以显式指定 Char 类型, 也可以让 Kotlin 从值中推断类型:
字符字面值(literal)必须包含恰好一个字符. 否则 Kotlin 编译器会报告错误:
可为 null 的值
要存储可为 null 的值, 请使用 Char?:
Unicode 支持
Kotlin 将 Char 值表示为 UTF-16 码元(Code Unit). 也就是说, 单个 Char 存储 1 个 UTF-16 码元(Code Unit), 不一定是一个完整的 Unicode 字符.
基本多语言平面(Basic Multilingual Plane)
单个 Char 能够存储从 \u0000 到 \uFFFF 范围内的值. 这个范围覆盖了基本多语言平面(Basic Multilingual Plane, BMP), 包括几乎所有现代语言的字符, 以及大量的符号.
要通过 Unicode 值指定字符, 请使用 \u, 加上来自 Unicode 表 的 4 位 16 进制值:
补充字符
基本多语言平面(Basic Multilingual Plane) 范围之外的 Unicode 字符, 例如表情符号和一些历史文字, 无法用单个 Char 表示. 在 UTF-16 中, 它们被编码为 代理对(Surrogate Pair), 也就是在 String 中, 使用 2 个 Char 值, 共同表示 1 个 Unicode 字符:
转义序列
对于难以直接在源代码中写出, 或具有特殊含义的特殊字符, 请使用转义序列.
每个转义序列以反斜线 (\) 开头.
支持的转义序列 | 描述 |
|---|---|
| 制表符(Tab) |
| 退格(Backspace) |
| 换行(New Line, LF) |
| 回车(Carriage Return, CR) |
| 单引号( |
| 双引号( |
| 反斜线( |
| 美元符号( |
例如:
操作
Char 支持比较, 检查, 大小写转换, 以及显式数值转换.
字符比较
要比较 Char 值, 请使用标准的 比较运算符, 例如 ==, !=, <, >, <= 和 >=.
Kotlin 按照字符的数值型 Unicode 值进行比较, 并返回 Boolean 值:
字符处理
Kotlin 提供了用于字符值检查和大小写转换的函数. 例如:
字符的算术运算
可以对字符加减一个整数值, 来得到另一个字符值:
对可变变量, 也可以使用递增 (++) 和递减 (--) 运算符的前缀和后缀形式:
字符转换
要将 Char 转换为数值类型, 请使用显式转换:
使用
.code得到字符的数值型 Unicode 值:fun main() { //sampleStart val letter = 'A' println(letter.code) // 输出结果为: 65 //sampleEnd }如果字符表示 10 进制数字, 请使用
digitToInt():fun main() { //sampleStart val digit = '7' println(digit.digitToInt()) // 输出结果为: 7 //sampleEnd }