原始类型包装类解读(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<Character> TYPE = (Class<Character>) 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。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 最先接触编程的知识是在大学里面,大学里面学了一些基础的知识,c语言,java语言,单片机的汇编语言等;大学毕...
    oceanfive阅读 8,494评论 0 7
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,717评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,247评论 19 139
  • 一、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机...
    杀小贼阅读 7,142评论 0 4
  • 在辛未特馆看到这本书,小虎就爱不释手了。一再央求之下,借回了这本书。 以鲨鱼虎虎的经历为线索,把每个故事串起来。这...
    青青_2dfe阅读 3,723评论 0 0

友情链接更多精彩内容