在 Java 中,将 char 类型转换为 int 类型非常直接,因为 char 本质上是一个无符号的 16 位整数(Unicode 字符),以下是几种常见的方法:

(图片来源网络,侵删)
方法 1:直接强制类型转换(最常用)
char 可以直接通过 (int) 强制转换为 int,得到的是字符的 Unicode 码点值。
char ch = 'A'; int codePoint = (int) ch; // 转换为 Unicode 码点 System.out.println(codePoint); // 输出: 65('A' 的 Unicode 码点)
方法 2:使用 Character.getNumericValue()
如果字符是数字(如 '0'、'1'),可以用此方法获取其对应的整数值('0' → 0)。
char digit = '5'; int num = Character.getNumericValue(digit); // 返回 5 System.out.println(num); // 输出: 5
注意:
- 对于非数字字符(如
'A'),此方法返回 -1。 - 对于 Unicode 数字(如 ,对应梵文数字 1),也能正确转换。
方法 3:使用 Character.digit()
与 getNumericValue() 类似,但可以指定进制(如 10 进制)。

(图片来源网络,侵删)
char digit = '9'; int num = Character.digit(digit, 10); // 10 进制下的数字 System.out.println(num); // 输出: 9
注意:
- 如果字符不是指定进制的有效数字,返回 -1。
方法 4:通过 ASCII/Unicode 值计算
如果字符是数字(如 '0' 到 '9'),可以通过减去 '0' 的码点得到实际数值。
char ch = '7'; int num = ch - '0'; // '0' 的码点是 48,'7' 是 55,55 - 48 = 7 System.out.println(num); // 输出: 7
适用场景:
- 仅适用于数字字符(
'0'-'9'),其他字符会得到错误结果。
| 方法 | 适用场景 | 示例 |
|---|---|---|
(int) ch |
获取字符的 Unicode 码点 | (int) 'A' → 65 |
Character.getNumericValue(ch) |
获取字符的数字值(支持 Unicode 数字) | getNumericValue('१') → 1 |
Character.digit(ch, radix) |
按指定进制获取数字值 | digit('A', 16) → 10(十六进制) |
ch - '0' |
快速转换数字字符(仅 '0'-'9') | '7' - '0' → 7 |
根据需求选择合适的方法:

(图片来源网络,侵删)
- 需要字符的 Unicode 码点 → 强制转换。
- 需要字符代表的数字值 →
getNumericValue或digit。 - 确保是数字字符且需高效计算 → 减
'0'。
