Java中char类型可参与加减运算,本质是按Unicode码点进行整数运算,结果默认为int型,赋值给char需强制转换;常见用途包括大小写转换、数字字符转数值及凯撒加密等。

Java 中 char 类型可以参与加减运算,本质是按其对应的 Unicode 码点(整数值)进行计算,结果默认为 int 类型,需注意类型转换问题。
char 运算的本质是数字运算
char 在 Java 中是 16 位无符号整数类型,底层存储的是 Unicode 编码值(如 'a' 是 97,'A' 是 65)。所以:
-
'b' - 'a'得到1(98 − 97) -
'A' + 32得到97,即'a'的码点 -
'0' + 5得到53,对应字符'5'(因为'0'是 48)
加减后结果是 int,赋值给 char 需显式强制转换
Java 规定:任意两个基本类型做算术运算,只要含 char、byte 或 short,结果自动提升为 int。因此:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
-
char c = 'a' + 1;❌ 编译错误:不能将int直接赋给char -
char c = (char)('a' + 1);✅ 正确:强转后得到'b' -
int i = 'z' - 'a';✅ 合法,结果是25
常见实用场景
利用 char 的数值特性可简洁实现一些操作:
立即学习“Java免费学习笔记(深入)”;
-
大小写转换:
(char)('A' + ('c' - 'a'))→'C';或更安全用Character.toUpperCase('c') -
数字字符转对应数值:
'7' - '0'→7(比Integer.parseInt("7")更轻量) -
移位加密(如凯撒密码):
(char)((c - 'a' + 3) % 26 + 'a'),仅对小写字母生效
注意事项
运算时需防范越界和非预期结果:
- 超出 Unicode 可表示范围(0–65535)会静默截断,例如
(char)65536实际是\u0000 - 对非字母/数字字符运算(如
'@' + 1)可能得到控制字符或符号,需结合业务逻辑判断 - 不要依赖 ASCII 外的编码顺序(如中文字符),不同语言环境排序未必连续

















