Java Character 类
char 只能存放单个字符,很多判断、转换操作没有着落;Character 是 char 的包装类,把这些能力以静态方法的形式集中提供,还支持转义与 Unicode 处理。
Character 包装类
char → Character,用法与 int → Integer 一致,可自动装箱拆箱,也能放进集合。
public class CharDemo {
public static void main(String[] args) {
Character c = 'A'; // 自动装箱
char ch = c; // 自动拆箱
System.out.println(ch); // 输出:A
System.out.println(c + 1); // 输出:66(Character 与数值运算)
}
}
常用判断方法
Character 提供大量静态方法,直接类名调用,常用如下:
| 方法 | 作用 | 示例 |
|---|---|---|
| isLetter(ch) | 是否为字母 | isLetter('a') → true |
| isDigit(ch) | 是否为数字 | isDigit('8') → true |
| isLetterOrDigit(ch) | 字母或数字 | isLetterOrDigit('5') → true |
| isWhitespace(ch) | 是否为空白 | isWhitespace(' ') → true |
| isUpperCase(ch) | 是否大写字母 | isUpperCase('A') → true |
| isLowerCase(ch) | 是否小写字母 | isLowerCase('b') → true |
| toUpperCase(ch) | 转大写 | toUpperCase('b') → 'B' |
| toLowerCase(ch) | 转小写 | toLowerCase('A') → 'a' |
public class CharCheck {
public static void main(String[] args) {
System.out.println(Character.isDigit('8')); // 输出:true
System.out.println(Character.isLetter('a')); // 输出:true
System.out.println(Character.isWhitespace(' ')); // 输出:true
System.out.println(Character.toUpperCase('b')); // 输出:B
System.out.println(Character.isUpperCase('B')); // 输出:true
}
}
char 与 int 互转
字符在计算机里本质是数字(Unicode 编码),可直接赋值给 int,也可强转回来。
// 片段需放进 main 方法中运行
char c = 'A';
int code = c; // char 自动转 int,'A' 编码是 65
System.out.println(code); // 输出:65
char next = (char) (code + 1); // 强转回 char
System.out.println(next); // 输出:B
System.out.println((int) '0'); // 输出:48(数字字符的编码)
转义字符
一些特殊字符要写进字符串,必须用反斜杠转义:
| 转义 | 含义 | 转义 | 含义 |
|---|---|---|---|
| \n | 换行 | \t | 制表符(Tab) |
| \ | 反斜杠 \ | ' | 单引号 |
| " | 双引号 | \uXXXX | Unicode 字符 |
public class EscapeDemo {
public static void main(String[] args) {
System.out.println("第一行\n第二行"); // 输出两行文字
System.out.println("她说:\"你好\""); // 输出:她说:"你好"
System.out.println("路径:C:\\java\\demo"); // 输出:路径:C:\java\demo
System.out.println('\u0041'); // 输出:A(Unicode 编码 65)
}
}
小结:Character 把字符的判断、转换集中成静态方法,查表即可调用;配合转义字符与编码互转,字符处理就顺畅了。char 本质上就是一个 16 位的数字,理解这一点最关键。