原始类型包装类解读(Character)

该类表示Unicode字符,仅有一个final char类型的成员变量value,用来保存对应的原始类型。

静态常量

    //最小的进制
    public static final int MIN_RADIX = 2;
    //最大的进制。0-9有10个数字,a-z有26个字母,总共36。
    public static final int MAX_RADIX = 36;
    //最小值0
    public static final char MIN_VALUE = '\u0000';
    //最大值65535
    public static final char MAX_VALUE = '\uFFFF';
    //原始类型
    public static final Class TYPE = (Class) char[].class.getComponentType();
    //占16比特
    public static final int SIZE = 16;
    //占2字节
    public static final int BYTES = SIZE / Byte.SIZE;

字符类型:

注释格式为:“Unicode规范中的种类”(——描述)

    //“Cn”
    public static final byte UNASSIGNED = 0;
    //“Lu”——大写字母
    public static final byte UPPERCASE_LETTER = 1;
    //“Ll”——小写字母
    public static final byte LOWERCASE_LETTER = 2;
    //“Lt”
    public static final byte TITLECASE_LETTER = 3;
    //“Lm”
    public static final byte MODIFIER_LETTER = 4;
    //“Lo”——各种文字,汉字属于此类
    public static final byte OTHER_LETTER = 5;
    //“Mn”——该类字符不会占用一个空格的空间,而是作用在之前或之后的字符上。如删除线、下划线等
    public static final byte NON_SPACING_MARK = 6;
    //“Me”——闭合字符,如' ⃟'、' ⃠'
    public static final byte ENCLOSING_MARK = 7;
    //“Mc”——
    public static final byte COMBINING_SPACING_MARK = 8;
    //“Nd”——数字字符,如阿拉伯数字
    public static final byte DECIMAL_DIGIT_NUMBER = 9;
    //“Nl”——字母数字,如罗马数字
    public static final byte LETTER_NUMBER = 10;
    //“No”——其他的特殊数字,如:'①'、'⑴'、'⒈'、'㈠'
    public static final byte OTHER_NUMBER = 11;
    //“Zs”
    public static final byte SPACE_SEPARATOR = 12;
    //“Zl”
    public static final byte LINE_SEPARATOR = 13;
    //“Zp”
    public static final byte PARAGRAPH_SEPARATOR = 14;
    //“Cc”
    public static final byte CONTROL = 15;
    //“Cf”
    public static final byte FORMAT = 16;
    //“Co”
    public static final byte PRIVATE_USE = 18;
    //“Cs”
    public static final byte SURROGATE = 19;
    //“Pd”——连接符,如'-'
    public static final byte DASH_PUNCTUATION = 20;
    //“Ps”——成对标点符号的开始符号,如'('、'【'、'{'、'《'
    public static final byte START_PUNCTUATION = 21;
    //“Pe”——成对标点符号的结束符号,如')'、'】'、'}'、'》'
    public static final byte END_PUNCTUATION = 22;
    //“Pc”
    public static final byte CONNECTOR_PUNCTUATION = 23;
    //“Po”——其他标点符号,如'!'、'?'、'!'、'?'
    public static final byte OTHER_PUNCTUATION = 24;
    //“Sm”——数学符号,如'+'、'='、'>'
    public static final byte MATH_SYMBOL = 25;
    //“Sc”——货币符号,如'$'、'¥'
    public static final byte CURRENCY_SYMBOL = 26;
    //“Sk”——修饰符,如'^'
    public static final byte MODIFIER_SYMBOL = 27;
    //“So”——其他符号,如'⒜'
    public static final byte OTHER_SYMBOL = 28;
    //“Pi”——引用符号的开始符号,如'“'、'‘'
    public static final byte INITIAL_QUOTE_PUNCTUATION = 29;
    //“Pf”——引用符号的结束符号,如'”'、'’'
    public static final byte FINAL_QUOTE_PUNCTUATION = 30;

其他比较专业的字段及其方法此处略过

CharacterCache

    private static class CharacterCache {
        private CharacterCache(){}

        static final Character cache[] = new Character[127 + 1];

        static {
            for (int i = 0; i < cache.length; i++)
                cache[i] = new Character((char)i);
        }
    }

该类缓存了0~127共128个Character值。

valueOf

    public static Character valueOf(char c) {
        if (c <= 127) { //从缓存取
            return CharacterCache.cache[(int)c];
        }
        return new Character(c);
    }

public static boolean isLowerCase(int codePoint)

判断是否是小写形式。

public static boolean isUpperCase(char ch)

判断是否是大写形式。

public static boolean isDigit(char ch)

判断是否是数字。

public static boolean isLetter(char ch)

判断是否是文字。包括字母、汉字、其他文字等。

public static boolean isLetterOrDigit(char ch)

判断是否是文字或者数字。

public static char toLowerCase(char ch)

转换为小写

public static char toUpperCase(char ch)

转换为大写

digit

    public static int digit(char ch, int radix) {
        return digit((int)ch, radix);
    }

    /**
     * radix: 进制
     */
    public static int digit(int codePoint, int radix) {
        if (radix < MIN_RADIX || radix > MAX_RADIX) {
            return -1;
        }
        if (codePoint < 128) {
            // Optimized for ASCII
            int result = -1;
            if ('0' <= codePoint && codePoint <= '9') {
                result = codePoint - '0';
            } else if ('a' <= codePoint && codePoint <= 'z') {
                result = 10 + (codePoint - 'a');
            } else if ('A' <= codePoint && codePoint <= 'Z') {
                result = 10 + (codePoint - 'A');
            }
            return result < radix ? result : -1;
        }
        return digitImpl(codePoint, radix);
    }

将字符按照给定的进制转换为整数。

public static boolean isSpaceChar(char ch)

判断是否是Unicode空格符。

public static boolean isWhitespace(int codePoint)

判断是否是Java中的空白符。

public static int getType(char ch)

获取字符的类型,参见上面的字符类型

forDigit

    public static char forDigit(int digit, int radix) {
        if ((digit >= radix) || (digit < 0)) {
            return '\0';
        }
        if ((radix < Character.MIN_RADIX) || (radix > Character.MAX_RADIX)) {
            return '\0';
        }
        if (digit < 10) {
            return (char)('0' + digit);
        }
        return (char)('a' - 10 + digit);
    }

将整数digit按照给定的进制radix转换为字符。

reverseBytes

    public static char reverseBytes(char ch) {
        return (char) (((ch & 0xFF00) >> 8) | (ch << 8));
    }

将高8位和低8位的bit值互换。比如原值为0x0F00,则互换后为0x000F。

你可能感兴趣的:(原始类型包装类解读(Character))