java中char是什么?如何使用?

char是Java中占2字节的无符号整数型基本类型,取值范围为\u0000~\uFFFF(0~65535),用单引号赋值,支持字符字面量、Unicode转义、数值及转义字符;可与int互转,常用于大小写转换和Character工具类操作。

Java 中的 char 是一种基本数据类型,专门用来表示单个字符,占 2 个字节(16 位),取值范围是 Unicode 编码的 \u0000\uFFFF(即 0~65535)。它本质是无符号整数,所以既能当字符用,也能当数字用。

char 的常见赋值方式

必须用英文单引号包裹,且只能是一个字符(包括中文、标点、字母、数字等):

  • 直接字符字面量:如 char c = 'A';char ch = '中';
  • Unicode 转义序列:以 \u 开头 + 4 位十六进制数,如 char pi = '\u03C0';(π)、char tm = '\u2122';(™)
  • ASCII/Unicode 数值:利用其整数本质,如 char c = 65; 等价于 'A'char d = 0x41; 也一样
  • 转义字符:如 '\n'(换行)、'\t'(制表)、'\\'(反斜杠)、'\''(单引号)、'\"'(双引号)

char 和整数之间的互转

因为 char 底层就是 16 位无符号整数,转换非常自然:

  • 字符 → 整数:直接赋值,如 int code = 'a'; → 得到 97
  • 整数 → 字符:需强制类型转换,如 char

    c = (char)97;
    → 得到 'a'
  • 大小写转换可基于 ASCII 差值:小写变大写 → (char)(c - 32);大写变小写 → (char)(c + 32)(仅限英文字母)

char 的使用注意事项

容易出错的地方要特别留心:

  • 不能用双引号,"a" 是字符串,不是 char,char x = "a"; 编译报错
  • 不能为空,char c = ''; 不合法;也不能放多个字符,'ab''\n\t' 都不行
  • Unicode 转义(\uXXXX)在代码解析阶段就被处理,所以不能出现在注释里,否则可能破坏语法
  • 中文字符完全支持,比如 char c = '李'; 合法,对应 Unicode 码如 \u674E

和其他类型的配合使用

单独的 char 不能拼接,但可以参与字符串构建或工具类操作:

  • 转成字符串:String s = String.valueOf('X');String s = Character.toString('X');
  • 判断属性:Character.isLetter('8') 返回 false,Character.isDigit('8') 返回 true
  • 大小写转换:Character.toUpperCase('k') → 'K',比手动加减更安全(兼容非 ASCII 字符)
  • 比较两个 char:char a = 'm', b = 'M'; System.out.println(a == b); → false(区分大小写)

基本上就这些。char 看似简单,但理解它“既是字符又是数”的双重身份,才能用得稳、转得准、避得开坑。