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)
\反斜杠 \'单引号
"双引号\uXXXXUnicode 字符
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 位的数字,理解这一点最关键。

笔记加载中…