资讯详情

JDK源码学习与分析之Character

本文基于JDK1.8学习与分析Character源码。

public final class Character implements java.io.Serializable, Comparable<Character>

Character包装对象中的基本类型char的值。类型为Character对象包含单个字段,类型为char。此外,该类还提供了几种确定字符类别(小写字母、数字等)的方法,并将字符从大写转换为小写,反之亦然。

package java.lang;  import java.util.Arrays; import java.util.Map; import java.util.HashMap; import java.util.Locale;  /**  * @author  Lee Boynton  * @author  Guy Steele  * @author  Akira Tanaka  * @author  Martin Buchholz  * @author  Ulf Zibis  * @since   1.0  */ public final class Character implements java.io.Serializable, Comparable<Character> {     /**      * 可转换为字符串和从字符串转换的最小、大基数。      */     public static final int MIN_RADIX = 2;     public static final int MAX_RADIX = 36;      /**      * char常量      */     public static final char MIN_VALUE = '\u0000';     public static final char MAX_VALUE = '\uFFFF';      /**      * 获取包装类对应的Class对象      */     @SuppressWarnings("unchecked")     public static final Class<Character> TYPE = (Class<Character>) Class.getPrimitiveClass("char");      /**      * byte常量      */     public static final byte UNASSIGNED = 0;     public static final byte UPPERCASE_LETTER = 1;     public static final byte LOWERCASE_LETTER = 2;     public static final byte TITLECASE_LETTER = 3;     public static final byte MODIFIER_LETTER = 4;     public static final byte OTHER_LETTER = 5;     public static final byte NON_SPACING_MARK = 6;     public static final byte ENCLOSING_MARK = 7;     public static final byte COMBINING_SPACING_MARK = 8;     public static final byte DECIMAL_DIGIT_NUMBER  = 9;     public static final byte LETTER_NUMBER = 10;     public static final byte OTHER_NUMBER = 11;     public static final byte SPACE_SEPARATOR = 12;     public static final byte LINE_SEPARATOR = 13;     public static final byte PARAGRAPH_SEPARATOR = 14;     public static final byte CONTROL = 15;     public static final byte FORMAT = 16;     public static final byte PRIVATE_USE = 18;     public static final byte SURROGATE = 19;     public static final byte DASH_PUNCTUATION = 20;     public static final byte START_PUNCTUATION = 21;     public static final byte END_PUNCTUATION = 22;     public static final byte CONNECTOR_PUNCTUATION = 23;     public static final byte OTHER_PUNCTUATION = 24;     public static final byte MATH_SYMBOL = 25;     public static final byte CURRENCY_SYMBOL = 26;     public static final byte MODIFIER_SYMBOL = 27;     public static final byte OTHER_SYMBOL = 28;     public static final byte INITIAL_QUOTE_PUNCTUATION = 29;     public static final byte FINAL_QUOTE_PUNCTUATION = 30;      /**      * 定义一个int类型错误标记      */     static final int ERROR = 0xFFFFFFFF;      /**      * byte常量      */     public static final byte DIRECTIONALITY_UNDEFINED = -1;     public static final byte DIRECTIONALITY_LEFT_TO_RIGHT = 0;     public static final byte DIRECTIONALITY_RIGHT_TO_LEFT = 1;     public static final byte DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC = 2;     public static final byte DIRECTIONALITY_EUROPEAN_NUMBER = 3;     public static final byte DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR = 4;     public static final byte DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR = 5;     public static final byte DIRECTIONALITY_ARABIC_NUMBER = 6;     public static final byte DIRECTIONALITY_COMMON_NUMBER_SEPARATOR = 7;     public static final byte DIRECTIONALITY_NONSPACING_MARK = 8;     public static final byte DIRECTIONALITY_BOUNDARY_NEUTRAL = 9;     public static final byte DIRECTIONALITY_PARAGRAPH_SEPARATOR = 10;     public static final byte DIRECTIONALITY_SEGMENT_SEPARATOR = 11;     public static final byte DIRECTIONALITY_WHITESPACE = 12;     public static final byte DIRECTIONALITY_OTHER_NEUTRALS = 13;     public static final byte DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING = 14;     public static final byte DIRECTIONALITY_LEFT_TO_RIGHT_OVERRIDE = 15;     public static final byte DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING = 16;     public static final byte DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE = 17;     public static final byte DIRECTIONALITY_POP_DIRECTIONAL_FORMAT = 18;      /**      * char常量      */     public static final char MIN_HIGH_SURROGATE = '\uD800';     public static final char MAX_HIGH_SURROGATE = '\uDBFF';     public static final char MIN_LOW_SURROGATE  = '\uDC00';     public static final char MAX_LOW_SURROGATE  = '\uDFFF';     public static final char MIN_SURROGATE = MIN_HIGH_SURROGATE;     public static final char MAX_SURROGATE = MAX_LOW_SURROGATE;      /**      * int常量      */     public static final int MIN_SUPPLEMENTARY_CODE_POINT = 0x010000;     public static final int MIN_CODE_POINT = 0x00000;
    public static final int MAX_CODE_POINT = 0X10FFFF;


    /**
     * Unicode字符集的特定子集
     */
    public static class Subset  {

        private String name;
        protected Subset(String name) {
            if (name == null) {
                throw new NullPointerException("name");
            }
            this.name = name;
        }

        /**
         * 比较两个 Subset对象的相等性
         */
        public final boolean equals(Object obj) {
            return (this == obj);
        }

        /**
         * 返回由 Object.hashCode()方法定义的标准哈希码
         */
        public final int hashCode() {
            return super.hashCode();
        }

        /**
         * 返回此子集的名称
         */
        public final String toString() {
            return name;
        }
    }

    /**
     * 静态内部类UnicodeBlock
     */
    public static final class UnicodeBlock extends Subset {

        private static Map<String, UnicodeBlock> map = new HashMap<>(256);

        /**
         * 私有构造方法
         */
        private UnicodeBlock(String idName) {
            super(idName);
            map.put(idName, this);
        }

        private UnicodeBlock(String idName, String alias) {
            this(idName);
            map.put(alias, this);
        }

        private UnicodeBlock(String idName, String... aliases) {
            this(idName);
            for (String alias : aliases)
                map.put(alias, this);
        }

        /**
         * 静态常量类UnicodeBlock
         */
        public static final UnicodeBlock  BASIC_LATIN =
                new UnicodeBlock("BASIC_LATIN",
                        "BASIC LATIN",
                        "BASICLATIN");
        public static final UnicodeBlock LATIN_1_SUPPLEMENT =
                new UnicodeBlock("LATIN_1_SUPPLEMENT",
                        "LATIN-1 SUPPLEMENT",
                        "LATIN-1SUPPLEMENT");
        public static final UnicodeBlock LATIN_EXTENDED_A =
                new UnicodeBlock("LATIN_EXTENDED_A",
                        "LATIN EXTENDED-A",
                        "LATINEXTENDED-A");
        public static final UnicodeBlock LATIN_EXTENDED_B =
                new UnicodeBlock("LATIN_EXTENDED_B",
                        "LATIN EXTENDED-B",
                        "LATINEXTENDED-B");
        public static final UnicodeBlock IPA_EXTENSIONS =
                new UnicodeBlock("IPA_EXTENSIONS",
                        "IPA EXTENSIONS",
                        "IPAEXTENSIONS");
        public static final UnicodeBlock SPACING_MODIFIER_LETTERS =
                new UnicodeBlock("SPACING_MODIFIER_LETTERS",
                        "SPACING MODIFIER LETTERS",
                        "SPACINGMODIFIERLETTERS");
        public static final UnicodeBlock COMBINING_DIACRITICAL_MARKS =
                new UnicodeBlock("COMBINING_DIACRITICAL_MARKS",
                        "COMBINING DIACRITICAL MARKS",
                        "COMBININGDIACRITICALMARKS");
        public static final UnicodeBlock GREEK =
                new UnicodeBlock("GREEK",
                        "GREEK AND COPTIC",
                        "GREEKANDCOPTIC");
        public static final UnicodeBlock CYRILLIC =
                new UnicodeBlock("CYRILLIC");
        public static final UnicodeBlock ARMENIAN =
                new UnicodeBlock("ARMENIAN");
        public static final UnicodeBlock HEBREW =
                new UnicodeBlock("HEBREW");
        public static final UnicodeBlock ARABIC =
                new UnicodeBlock("ARABIC");
        public static final UnicodeBlock DEVANAGARI =
                new UnicodeBlock("DEVANAGARI");
        public static final UnicodeBlock BENGALI =
                new UnicodeBlock("BENGALI");
        public static final UnicodeBlock GURMUKHI =
                new UnicodeBlock("GURMUKHI");
        public static final UnicodeBlock GUJARATI =
                new UnicodeBlock("GUJARATI");
        public static final UnicodeBlock ORIYA =
                new UnicodeBlock("ORIYA");
        public static final UnicodeBlock TAMIL =
                new UnicodeBlock("TAMIL");
        public static final UnicodeBlock TELUGU =
                new UnicodeBlock("TELUGU");
        public static final UnicodeBlock KANNADA =
                new UnicodeBlock("KANNADA");
        public static final UnicodeBlock MALAYALAM =
                new UnicodeBlock("MALAYALAM");
        public static final UnicodeBlock THAI =
                new UnicodeBlock("THAI");
        public static final UnicodeBlock LAO =
                new UnicodeBlock("LAO");
        public static final UnicodeBlock TIBETAN =
                new UnicodeBlock("TIBETAN");
        public static final UnicodeBlock GEORGIAN =
                new UnicodeBlock("GEORGIAN");
        public static final UnicodeBlock HANGUL_JAMO =
                new UnicodeBlock("HANGUL_JAMO",
                        "HANGUL JAMO",
                        "HANGULJAMO");
        public static final UnicodeBlock LATIN_EXTENDED_ADDITIONAL =
                new UnicodeBlock("LATIN_EXTENDED_ADDITIONAL",
                        "LATIN EXTENDED ADDITIONAL",
                        "LATINEXTENDEDADDITIONAL");
        public static final UnicodeBlock GREEK_EXTENDED =
                new UnicodeBlock("GREEK_EXTENDED",
                        "GREEK EXTENDED",
                        "GREEKEXTENDED");
        public static final UnicodeBlock GENERAL_PUNCTUATION =
                new UnicodeBlock("GENERAL_PUNCTUATION",
                        "GENERAL PUNCTUATION",
                        "GENERALPUNCTUATION");
        public static final UnicodeBlock SUPERSCRIPTS_AND_SUBSCRIPTS =
                new UnicodeBlock("SUPERSCRIPTS_AND_SUBSCRIPTS",
                        "SUPERSCRIPTS AND SUBSCRIPTS",
                        "SUPERSCRIPTSANDSUBSCRIPTS");
        public static final UnicodeBlock CURRENCY_SYMBOLS =
                new UnicodeBlock("CURRENCY_SYMBOLS",
                        "CURRENCY SYMBOLS",
                        "CURRENCYSYMBOLS");
        public static final UnicodeBlock COMBINING_MARKS_FOR_SYMBOLS =
                new UnicodeBlock("COMBINING_MARKS_FOR_SYMBOLS",
                        "COMBINING DIACRITICAL MARKS FOR SYMBOLS",
                        "COMBININGDIACRITICALMARKSFORSYMBOLS",
                        "COMBINING MARKS FOR SYMBOLS",
                        "COMBININGMARKSFORSYMBOLS");
        public static final UnicodeBlock LETTERLIKE_SYMBOLS =
                new UnicodeBlock("LETTERLIKE_SYMBOLS",
                        "LETTERLIKE SYMBOLS",
                        "LETTERLIKESYMBOLS");
        public static final UnicodeBlock NUMBER_FORMS =
                new UnicodeBlock("NUMBER_FORMS",
                        "NUMBER FORMS",
                        "NUMBERFORMS");
        public static final UnicodeBlock ARROWS =
                new UnicodeBlock("ARROWS");
        public static final UnicodeBlock MATHEMATICAL_OPERATORS =
                new UnicodeBlock("MATHEMATICAL_OPERATORS",
                        "MATHEMATICAL OPERATORS",
                        "MATHEMATICALOPERATORS");
        public static final UnicodeBlock MISCELLANEOUS_TECHNICAL =
                new UnicodeBlock("MISCELLANEOUS_TECHNICAL",
                        "MISCELLANEOUS TECHNICAL",
                        "MISCELLANEOUSTECHNICAL");
        public static final UnicodeBlock CONTROL_PICTURES =
                new UnicodeBlock("CONTROL_PICTURES",
                        "CONTROL PICTURES",
                        "CONTROLPICTURES");
        public static final UnicodeBlock OPTICAL_CHARACTER_RECOGNITION =
                new UnicodeBlock("OPTICAL_CHARACTER_RECOGNITION",
                        "OPTICAL CHARACTER RECOGNITION",
                        "OPTICALCHARACTERRECOGNITION");
        public static final UnicodeBlock ENCLOSED_ALPHANUMERICS =
                new UnicodeBlock("ENCLOSED_ALPHANUMERICS",
                        "ENCLOSED ALPHANUMERICS",
                        "ENCLOSEDALPHANUMERICS");
        public static final UnicodeBlock BOX_DRAWING =
                new UnicodeBlock("BOX_DRAWING",
                        "BOX DRAWING",
                        "BOXDRAWING");
        public static final UnicodeBlock BLOCK_ELEMENTS =
                new UnicodeBlock("BLOCK_ELEMENTS",
                        "BLOCK ELEMENTS",
                        "BLOCKELEMENTS");
        public static final UnicodeBlock GEOMETRIC_SHAPES =
                new UnicodeBlock("GEOMETRIC_SHAPES",
                        "GEOMETRIC SHAPES",
                        "GEOMETRICSHAPES");
        public static final UnicodeBlock MISCELLANEOUS_SYMBOLS =
                new UnicodeBlock("MISCELLANEOUS_SYMBOLS",
                        "MISCELLANEOUS SYMBOLS",
                        "MISCELLANEOUSSYMBOLS");
        public static final UnicodeBlock DINGBATS =
                new UnicodeBlock("DINGBATS");
        public static final UnicodeBlock CJK_SYMBOLS_AND_PUNCTUATION =
                new UnicodeBlock("CJK_SYMBOLS_AND_PUNCTUATION",
                        "CJK SYMBOLS AND PUNCTUATION",
                        "CJKSYMBOLSANDPUNCTUATION");
        public static final UnicodeBlock HIRAGANA =
                new UnicodeBlock("HIRAGANA");
        public static final UnicodeBlock KATAKANA =
                new UnicodeBlock("KATAKANA");
        public static final UnicodeBlock BOPOMOFO =
                new UnicodeBlock("BOPOMOFO");
        public static final UnicodeBlock HANGUL_COMPATIBILITY_JAMO =
                new UnicodeBlock("HANGUL_COMPATIBILITY_JAMO",
                        "HANGUL COMPATIBILITY JAMO",
                        "HANGULCOMPATIBILITYJAMO");
        public static final UnicodeBlock KANBUN =
                new UnicodeBlock("KANBUN");
        public static final UnicodeBlock ENCLOSED_CJK_LETTERS_AND_MONTHS =
                new UnicodeBlock("ENCLOSED_CJK_LETTERS_AND_MONTHS",
                        "ENCLOSED CJK LETTERS AND MONTHS",
                        "ENCLOSEDCJKLETTERSANDMONTHS");
        public static final UnicodeBlock CJK_COMPATIBILITY =
                new UnicodeBlock("CJK_COMPATIBILITY",
                        "CJK COMPATIBILITY",
                        "CJKCOMPATIBILITY");
        public static final UnicodeBlock CJK_UNIFIED_IDEOGRAPHS =
                new UnicodeBlock("CJK_UNIFIED_IDEOGRAPHS",
                        "CJK UNIFIED IDEOGRAPHS",
                        "CJKUNIFIEDIDEOGRAPHS");
        public static final UnicodeBlock HANGUL_SYLLABLES =
                new UnicodeBlock("HANGUL_SYLLABLES",
                        "HANGUL SYLLABLES",
                        "HANGULSYLLABLES");
        public static final UnicodeBlock PRIVATE_USE_AREA =
                new UnicodeBlock("PRIVATE_USE_AREA",
                        "PRIVATE USE AREA",
                        "PRIVATEUSEAREA");
        public static final UnicodeBlock CJK_COMPATIBILITY_IDEOGRAPHS =
                new UnicodeBlock("CJK_COMPATIBILITY_IDEOGRAPHS",
                        "CJK COMPATIBILITY IDEOGRAPHS",
                        "CJKCOMPATIBILITYIDEOGRAPHS");
        public static final UnicodeBlock ALPHABETIC_PRESENTATION_FORMS =
                new UnicodeBlock("ALPHABETIC_PRESENTATION_FORMS",
                        "ALPHABETIC PRESENTATION FORMS",
                        "ALPHABETICPRESENTATIONFORMS");
        public static final UnicodeBlock ARABIC_PRESENTATION_FORMS_A =
                new UnicodeBlock("ARABIC_PRESENTATION_FORMS_A",
                        "ARABIC PRESENTATION FORMS-A",
                        "ARABICPRESENTATIONFORMS-A");
        public static final UnicodeBlock COMBINING_HALF_MARKS =
                new UnicodeBlock("COMBINING_HALF_MARKS",
                        "COMBINING HALF MARKS",
                        "COMBININGHALFMARKS");
        public static final UnicodeBlock CJK_COMPATIBILITY_FORMS =
                new UnicodeBlock("CJK_COMPATIBILITY_FORMS",
                        "CJK COMPATIBILITY FORMS",
                        "CJKCOMPATIBILITYFORMS");
        public static final UnicodeBlock SMALL_FORM_VARIANTS =
                new UnicodeBlock("SMALL_FORM_VARIANTS",
                        "SMALL FORM VARIANTS",
                        "SMALLFORMVARIANTS");
        public static final UnicodeBlock ARABIC_PRESENTATION_FORMS_B =
                new UnicodeBlock("ARABIC_PRESENTATION_FORMS_B",
                        "ARABIC PRESENTATION FORMS-B",
                        "ARABICPRESENTATIONFORMS-B");
        public static final UnicodeBlock HALFWIDTH_AND_FULLWIDTH_FORMS =
                new UnicodeBlock("HALFWIDTH_AND_FULLWIDTH_FORMS",
                        "HALFWIDTH AND FULLWIDTH FORMS",
                        "HALFWIDTHANDFULLWIDTHFORMS");
        public static final UnicodeBlock SPECIALS =
                new UnicodeBlock("SPECIALS");
        @Deprecated
        public static final UnicodeBlock SURROGATES_AREA =
                new UnicodeBlock("SURROGATES_AREA");
        public static final UnicodeBlock SYRIAC =
                new UnicodeBlock("SYRIAC");
        public static final UnicodeBlock THAANA =
                new UnicodeBlock("THAANA");
        public static final UnicodeBlock SINHALA =
                new UnicodeBlock("SINHALA");
        public static final UnicodeBlock MYANMAR =
                new UnicodeBlock("MYANMAR");
        public static final UnicodeBlock ETHIOPIC =
                new UnicodeBlock("ETHIOPIC");
        public static final UnicodeBlock CHEROKEE =
                new UnicodeBlock("CHEROKEE");
        public static final UnicodeBlock UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS =
                new UnicodeBlock("UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS",
                        "UNIFIED CANADIAN ABORIGINAL SYLLABICS",
                        "UNIFIEDCANADIANABORIGINALSYLLABICS");
        public static final UnicodeBlock OGHAM =
                new UnicodeBlock("OGHAM");
        public static final UnicodeBlock RUNIC =
                new UnicodeBlock("RUNIC");
        public static final UnicodeBlock KHMER =
                new UnicodeBlock("KHMER");
        public static final UnicodeBlock MONGOLIAN =
                new UnicodeBlock("MONGOLIAN");
        public static final UnicodeBlock BRAILLE_PATTERNS =
                new UnicodeBlock("BRAILLE_PATTERNS",
                        "BRAILLE PATTERNS",
                        "BRAILLEPATTERNS");
        public static final UnicodeBlock CJK_RADICALS_SUPPLEMENT =
                new UnicodeBlock("CJK_RADICALS_SUPPLEMENT",
                        "CJK RADICALS SUPPLEMENT",
                        "CJKRADICALSSUPPLEMENT");
        public static final UnicodeBlock KANGXI_RADICALS =
                new UnicodeBlock("KANGXI_RADICALS",
                        "KANGXI RADICALS",
                        "KANGXIRADICALS");
        public static final UnicodeBlock IDEOGRAPHIC_DESCRIPTION_CHARACTERS =
                new UnicodeBlock("IDEOGRAPHIC_DESCRIPTION_CHARACTERS",
                        "IDEOGRAPHIC DESCRIPTION CHARACTERS",
                        "IDEOGRAPHICDESCRIPTIONCHARACTERS");
        public static final UnicodeBlock BOPOMOFO_EXTENDED =
                new UnicodeBlock("BOPOMOFO_EXTENDED",
                        "BOPOMOFO EXTENDED",
                        "BOPOMOFOEXTENDED");
        public static final UnicodeBlock CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A =
                new UnicodeBlock("CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A",
                        "CJK UNIFIED IDEOGRAPHS EXTENSION A",
                        "CJKUNIFIEDIDEOGRAPHSEXTENSIONA");
        public static final UnicodeBlock YI_SYLLABLES =
                new UnicodeBlock("YI_SYLLABLES",
                        "YI SYLLABLES",
                        "YISYLLABLES");
        public static final UnicodeBlock YI_RADICALS =
                new UnicodeBlock("YI_RADICALS",
                        "YI RADICALS",
                        "YIRADICALS");
        public static final UnicodeBlock CYRILLIC_SUPPLEMENTARY =
                new UnicodeBlock("CYRILLIC_SUPPLEMENTARY",
                        "CYRILLIC SUPPLEMENTARY",
                        "CYRILLICSUPPLEMENTARY",
                        "CYRILLIC SUPPLEMENT",
                        "CYRILLICSUPPLEMENT");
        public static final UnicodeBlock TAGALOG =
                new UnicodeBlock("TAGALOG");
        public static final UnicodeBlock HANUNOO =
                new UnicodeBlock("HANUNOO");
        public static final UnicodeBlock BUHID =
                new UnicodeBlock("BUHID");
        public static final UnicodeBlock TAGBANWA =
                new UnicodeBlock("TAGBANWA");
        public static final UnicodeBlock LIMBU =
                new UnicodeBlock("LIMBU");
        public static final UnicodeBlock TAI_LE =
                new UnicodeBlock("TAI_LE",
                        "TAI LE",
                        "TAILE");
        public static final UnicodeBlock KHMER_SYMBOLS =
                new UnicodeBlock("KHMER_SYMBOLS",
                        "KHMER SYMBOLS",
                        "KHMERSYMBOLS");
        public static final UnicodeBlock PHONETIC_EXTENSIONS =
                new UnicodeBlock("PHONETIC_EXTENSIONS",
                        "PHONETIC EXTENSIONS",
                        "PHONETICEXTENSIONS");
        public static final UnicodeBlock MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A =
                new UnicodeBlock("MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A",
                        "MISCELLANEOUS MATHEMATICAL SYMBOLS-A",
                        "MISCELLANEOUSMATHEMATICALSYMBOLS-A");
        public static final UnicodeBlock SUPPLEMENTAL_ARROWS_A =
                new UnicodeBlock("SUPPLEMENTAL_ARROWS_A",
                        "SUPPLEMENTAL ARROWS-A",
                        "SUPPLEMENTALARROWS-A");
        public static final UnicodeBlock SUPPLEMENTAL_ARROWS_B =
                new UnicodeBlock("SUPPLEMENTAL_ARROWS_B",
                        "SUPPLEMENTAL ARROWS-B",
                        "SUPPLEMENTALARROWS-B");
        public static final UnicodeBlock MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B =
                new UnicodeBlock("MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B",
                        "MISCELLANEOUS MATHEMATICAL SYMBOLS-B",
                        "MISCELLANEOUSMATHEMATICALSYMBOLS-B");
        public static final UnicodeBlock SUPPLEMENTAL_MATHEMATICAL_OPERATORS =
                new UnicodeBlock("SUPPLEMENTAL_MATHEMATICAL_OPERATORS",
                        "SUPPLEMENTAL MATHEMATICAL OPERATORS",
                        "SUPPLEMENTALMATHEMATICALOPERATORS");
        public static final UnicodeBlock MISCELLANEOUS_SYMBOLS_AND_ARROWS =
                new UnicodeBlock("MISCELLANEOUS_SYMBOLS_AND_ARROWS",
                        "MISCELLANEOUS SYMBOLS AND ARROWS",
                        "MISCELLANEOUSSYMBOLSANDARROWS");
        public static final UnicodeBlock KATAKANA_PHONETIC_EXTENSIONS =
                new UnicodeBlock("KATAKANA_PHONETIC_EXTENSIONS",
                        "KATAKANA PHONETIC EXTENSIONS",
                        "KATAKANAPHONETICEXTENSIONS");
        public static final UnicodeBlock YIJING_HEXAGRAM_SYMBOLS =
                new UnicodeBlock("YIJING_HEXAGRAM_SYMBOLS",
                        "YIJING HEXAGRAM SYMBOLS",
                        "YIJINGHEXAGRAMSYMBOLS");
        public static final UnicodeBlock VARIATION_SELECTORS =
                new UnicodeBlock("VARIATION_SELECTORS",
                        "VARIATION SELECTORS",
                        "VARIATIONSELECTORS");
        public static final UnicodeBlock LINEAR_B_SYLLABARY =
                new UnicodeBlock("LINEAR_B_SYLLABARY",
                        "LINEAR B SYLLABARY",
                        "LINEARBSYLLABARY");
        public static final UnicodeBlock LINEAR_B_IDEOGRAMS =
                new UnicodeBlock("LINEAR_B_IDEOGRAMS",
                        "LINEAR B IDEOGRAMS",
                        "LINEARBIDEOGRAMS");
        public static final UnicodeBlock AEGEAN_NUMBERS =
                new UnicodeBlock("AEGEAN_NUMBERS",
                        "AEGEAN NUMBERS",
                        "AEGEANNUMBERS");
        public static final UnicodeBlock OLD_ITALIC =
                new UnicodeBlock("OLD_ITALIC",
                        "OLD ITALIC",
                        "OLDITALIC");
        public static final UnicodeBlock GOTHIC =
                new UnicodeBlock("GOTHIC");
        public static final UnicodeBlock UGARITIC =
                new UnicodeBlock("UGARITIC");
        public static final UnicodeBlock DESERET =
                new UnicodeBlock("DESERET");
        public static final UnicodeBlock SHAVIAN =
                new UnicodeBlock("SHAVIAN");
        public static final UnicodeBlock OSMANYA =
                new UnicodeBlock("OSMANYA");
        public static final UnicodeBlock CYPRIOT_SYLLABARY =
                new UnicodeBlock("CYPRIOT_SYLLABARY",
                        "CYPRIOT SYLLABARY",
                        "CYPRIOTSYLLABARY");
        public static final UnicodeBlock BYZANTINE_MUSICAL_SYMBOLS =
                new UnicodeBlock("BYZANTINE_MUSICAL_SYMBOLS",
                        "BYZANTINE MUSICAL SYMBOLS",
                        "BYZANTINEMUSICALSYMBOLS");
        public static final UnicodeBlock MUSICAL_SYMBOLS =
                new UnicodeBlock("MUSICAL_SYMBOLS",
                        "MUSICAL SYMBOLS",
                        "MUSICALSYMBOLS");
        public static final UnicodeBlock TAI_XUAN_JING_SYMBOLS =
                new UnicodeBlock("TAI_XUAN_JING_SYMBOLS",
                        "TAI XUAN JING SYMBOLS",
                        "TAIXUANJINGSYMBOLS");
        public static final UnicodeBlock MATHEMATICAL_ALPHANUMERIC_SYMBOLS =
                new UnicodeBlock("MATHEMATICAL_ALPHANUMERIC_SYMBOLS",
                        "MATHEMATICAL ALPHANUMERIC SYMBOLS",
                        "MATHEMATICALALPHANUMERICSYMBOLS");
        public static final UnicodeBlock CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B =
                new UnicodeBlock("CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B",
                        "CJK UNIFIED IDEOGRAPHS EXTENSION B",
                        "CJKUNIFIEDIDEOGRAPHSEXTENSIONB");
        public static final UnicodeBlock CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT =
                new UnicodeBlock("CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT",
                        "CJK COMPATIBILITY IDEOGRAPHS SUPPLEMENT",
                        "CJKCOMPATIBILITYIDEOGRAPHSSUPPLEMENT");
        public static final UnicodeBlock TAGS =
                new UnicodeBlock("TAGS");
        public static final UnicodeBlock VARIATION_SELECTORS_SUPPLEMENT =
                new UnicodeBlock("VARIATION_SELECTORS_SUPPLEMENT",
                        "VARIATION SELECTORS SUPPLEMENT",
                        "VARIATIONSELECTORSSUPPLEMENT");
        public static final UnicodeBlock SUPPLEMENTARY_PRIVATE_USE_AREA_A =
                new UnicodeBlock("SUPPLEMENTARY_PRIVATE_USE_AREA_A",
                        "SUPPLEMENTARY PRIVATE USE AREA-A",
                        "SUPPLEMENTARYPRIVATEUSEAREA-A");
        public static final UnicodeBlock SUPPLEMENTARY_PRIVATE_USE_AREA_B =
                new UnicodeBlock("SUPPLEMENTARY_PRIVATE_USE_AREA_B",
                        "SUPPLEMENTARY PRIVATE USE AREA-B",
                        "SUPPLEMENTARYPRIVATEUSEAREA-B");
        public static final UnicodeBlock HIGH_SURROGATES =
                new UnicodeBlock("HIGH_SURROGATES",
                        "HIGH SURROGATES",
                        "HIGHSURROGATES");
        public static final UnicodeBlock HIGH_PRIVATE_USE_SURROGATES =
                new UnicodeBlock("HIGH_PRIVATE_USE_SURROGATES",
                        "HIGH PRIVATE USE SURROGATES",
                        "HIGHPRIVATEUSESURROGATES");
        public static final UnicodeBlock LOW_SURROGATES =
                new UnicodeBlock("LOW_SURROGATES",
                        "LOW SURROGATES",
                        "LOWSURROGATES");
        public static final UnicodeBlock ARABIC_SUPPLEMENT =
                new UnicodeBlock("ARABIC_SUPPLEMENT",
                        "ARABIC SUPPLEMENT",
                        "ARABICSUPPLEMENT");
        public static final UnicodeBlock NKO =
                new UnicodeBlock("NKO");
        public static final UnicodeBlock SAMARITAN =
                new UnicodeBlock("SAMARITAN");
        public static final UnicodeBlock MANDAIC =
                new UnicodeBlock("MANDAIC");
        public static final UnicodeBlock ETHIOPIC_SUPPLEMENT =
                new UnicodeBlock("ETHIOPIC_SUPPLEMENT",
                        "ETHIOPIC SUPPLEMENT",
                        "ETHIOPICSUPPLEMENT");
        public static final UnicodeBlock UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED =
                new UnicodeBlock("UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED",
                        "UNIFIED CANADIAN ABORIGINAL SYLLABICS EXTENDED",
                        "UNIFIEDCANADIANABORIGINALSYLLABICSEXTENDED");
        public static final UnicodeBlock NEW_TAI_LUE =
                new UnicodeBlock("NEW_TAI_LUE",
                        "NEW TAI LUE",
                        "NEWTAILUE");
        public static final UnicodeBlock BUGINESE =
                new UnicodeBlock("BUGINESE");
        public static final UnicodeBlock TAI_THAM =
                new UnicodeBlock("TAI_THAM",
                        "TAI THAM",
                        "TAITHAM");
        public static final UnicodeBlock BALINESE =
                new UnicodeBlock("BALINESE");
        public static final UnicodeBlock SUNDANESE =
                new UnicodeBlock("SUNDANESE");
        public static final UnicodeBlock BATAK =
                new UnicodeBlock("BATAK");
        public static final UnicodeBlock LEPCHA =
                new UnicodeBlock("LEPCHA");
        public static final UnicodeBlock OL_CHIKI =
                new UnicodeBlock("OL_CHIKI",
                        "OL CHIKI",
                        "OLCHIKI");
        public static final UnicodeBlock VEDIC_EXTENSIONS =
                new UnicodeBlock("VEDIC_EXTENSIONS",
                        "VEDIC EXTENSIONS",
                        "VEDICEXTENSIONS");
        public static final UnicodeBlock PHONETIC_EXTENSIONS_SUPPLEMENT =
                new UnicodeBlock("PHONETIC_EXTENSIONS_SUPPLEMENT",
                        "PHONETIC EXTENSIONS SUPPLEMENT",
                        "PHONETICEXTENSIONSSUPPLEMENT");
        public static final UnicodeBlock COMBINING_DIACRITICAL_MARKS_SUPPLEMENT =
                new UnicodeBlock("COMBINING_DIACRITICAL_MARKS_SUPPLEMENT",
                        "COMBINING DIACRITICAL MARKS SUPPLEMENT",
                        "COMBININGDIACRITICALMARKSSUPPLEMENT");
        public static final UnicodeBlock GLAGOLITIC =
                new UnicodeBlock("GLAGOLITIC");
        public static final UnicodeBlock LATIN_EXTENDED_C =
                new UnicodeBlock("LATIN_EXTENDED_C",
                        "LATIN EXTENDED-C",
                        "LATINEXTENDED-C");
        public static final UnicodeBlock COPTIC =
                new UnicodeBlock("COPTIC");
        public static final UnicodeBlock GEORGIAN_SUPPLEMENT =
                new UnicodeBlock("GEORGIAN_SUPPLEMENT",
                        "GEORGIAN SUPPLEMENT",
                        "GEORGIANSUPPLEMENT");
        public static final UnicodeBlock TIFINAGH =
                new UnicodeBlock("TIFINAGH");
        public static final UnicodeBlock ETHIOPIC_EXTENDED =
                new UnicodeBlock("ETHIOPIC_EXTENDED",
                        "ETHIOPIC EXTENDED",
                        "ETHIOPICEXTENDED");
        public static final UnicodeBlock CYRILLIC_EXTENDED_A =
                new UnicodeBlock("CYRILLIC_EXTENDED_A",
                        "CYRILLIC EXTENDED-A",
                        "CYRILLICEXTENDED-A");
        public static final UnicodeBlock SUPPLEMENTAL_PUNCTUATION =
                new UnicodeBlock("SUPPLEMENTAL_PUNCTUATION",
                        "SUPPLEMENTAL PUNCTUATION",
                        "SUPPLEMENTALPUNCTUATION");
        public static final UnicodeBlock CJK_STROKES =
                new UnicodeBlock("CJK_STROKES",
                        "CJK STROKES",
                        "CJKSTROKES");
        public static final UnicodeBlock LISU =
                new UnicodeBlock("LISU");
        public static final UnicodeBlock VAI =
                new UnicodeBlock("VAI");
        public static final UnicodeBlock CYRILLIC_EXTENDED_B =
                new UnicodeBlock("CYRILLIC_EXTENDED_B",
                        "CYRILLIC EXTENDED-B",
                        "CYRILLICEXTENDED-B");
        public static final UnicodeBlock BAMUM =
                new UnicodeBlock("BAMUM");
        public static final UnicodeBlock MODIFIER_TONE_LETTERS =
                new UnicodeBlock("MODIFIER_TONE_LETTERS",
                        "MODIFIER TONE LETTERS",
                        "MODIFIERTONELETTERS");
        public static final UnicodeBlock LATIN_EXTENDED_D =
                new UnicodeBlock("LATIN_EXTENDED_D",
                        "LATIN EXTENDED-D",
                        "LATINEXTENDED-D");
        public static final UnicodeBlock SYLOTI_NAGRI =
                new UnicodeBlock("SYLOTI_NAGRI",
                        "SYLOTI NAGRI",
                        "SYLOTINAGRI");
        public static final UnicodeBlock COMMON_INDIC_NUMBER_FORMS =
                new UnicodeBlock("COMMON_INDIC_NUMBER_FORMS",
                        "COMMON INDIC NUMBER FORMS",
                        "COMMONINDICNUMBERFORMS");
        public static final UnicodeBlock PHAGS_PA =
                new UnicodeBlock("PHAGS_PA",
                        "PHAGS-PA");
        public static final UnicodeBlock SAURASHTRA =
                new UnicodeBlock("SAURASHTRA");
        public static final UnicodeBlock DEVANAGARI_EXTENDED =
                new UnicodeBlock("DEVANAGARI_EXTENDED",
                        "DEVANAGARI EXTENDED",
                        "DEVANAGARIEXTENDED");
        public static final UnicodeBlock KAYAH_LI =
                new UnicodeBlock("KAYAH_LI",
                        "KAYAH LI",
                        "KAYAHLI");
        public static final UnicodeBlock REJANG =
                new UnicodeBlock("REJANG");
        public static final UnicodeBlock HANGUL_JAMO_EXTENDED_A =
                new UnicodeBlock("HANGUL_JAMO_EXTENDED_A",
                        "HANGUL JAMO EXTENDED-A",
                        "HANGULJAMOEXTENDED-A");
        public static final UnicodeBlock JAVANESE =
                new UnicodeBlock("JAVANESE");
        public static final UnicodeBlock CHAM =
                new UnicodeBlock("CHAM");
        public static final UnicodeBlock MYANMAR_EXTENDED_A =
                new UnicodeBlock("MYANMAR_EXTENDED_A",
                        "MYANMAR EXTENDED-A",
                        "MYANMAREXTENDED-A");
        public static final UnicodeBlock TAI_VIET =
                new UnicodeBlock("TAI_VIET",
                        "TAI VIET",
                        "TAIVIET");
        public static final UnicodeBlock ETHIOPIC_EXTENDED_A =
                new UnicodeBlock("ETHIOPIC_EXTENDED_A",
                        "ETHIOPIC EXTENDED-A",
                        "ETHIOPICEXTENDED-A");
        public static final UnicodeBlock MEETEI_MAYEK =
                new UnicodeBlock("MEETEI_MAYEK",
                        "MEETEI MAYEK",
                        "MEETEIMAYEK");
        public static final UnicodeBlock HANGUL_JAMO_EXTENDED_B =
                new UnicodeBlock("HANGUL_JAMO_EXTENDED_B",
                        "HANGUL JAMO EXTENDED-B",
                        "HANGULJAMOEXTENDED-B");
        public static final UnicodeBlock VERTICAL_FORMS =
                new UnicodeBlock("VERTICAL_FORMS",
                        "VERTICAL FORMS",
                        "VERTICALFORMS");
        public static final UnicodeBlock ANCIENT_GREEK_NUMBERS =
                new UnicodeBlock("ANCIENT_GREEK_NUMBERS",
                        "ANCIENT GREEK NUMBERS",
                        "ANCIENTGREEKNUMBERS");
        public static final UnicodeBlock ANCIENT_SYMBOLS =
                new UnicodeBlock("ANCIENT_SYMBOLS",
                        "ANCIENT SYMBOLS",
                        "ANCIENTSYMBOLS");
        public static final UnicodeBlock PHAISTOS_DISC =
                new UnicodeBlock("PHAISTOS_DISC",
                        "PHAISTOS DISC",
                        "PHAISTOSDISC");
        public static final UnicodeBlock LYCIAN =
                new UnicodeBlock("LYCIAN");
        public static final UnicodeBlock CARIAN =
                new UnicodeBlock("CARIAN");
        public static final UnicodeBlock OLD_PERSIAN =
                new UnicodeBlock("OLD_PERSIAN",
                        "OLD PERSIAN",
                        "OLDPERSIAN");
        public static final UnicodeBlock IMPERIAL_ARAMAIC =
                new UnicodeBlock("IMPERIAL_ARAMAIC",
                        "IMPERIAL ARAMAIC",
                        "IMPERIALARAMAIC");
        public static final UnicodeBlock PHOENICIAN =
                new UnicodeBlock("PHOENICIAN");
        public static final UnicodeBlock LYDIAN =
                new UnicodeBlock("LYDIAN");
        public static final UnicodeBlock KHAROSHTHI =
                new UnicodeBlock("KHAROSHTHI");
        public static final UnicodeBlock OLD_SOUTH_ARABIAN =
                new UnicodeBlock("OLD_SOUTH_ARABIAN",
                        "OLD SOUTH ARABIAN",
                        "OLDSOUTHARABIAN");
        public static final UnicodeBlock AVESTAN =
                new UnicodeBlock("AVESTAN");
        public static final UnicodeBlock INSCRIPTIONAL_PARTHIAN =
                new UnicodeBlock("INSCRIPTIONAL_PARTHIAN",
                        "INSCRIPTIONAL PARTHIAN",
                        "INSCRIPTIONALPARTHIAN");
        public static final UnicodeBlock INSCRIPTIONAL_PAHLAVI =
                new UnicodeBlock("INSCRIPTIONAL_PAHLAVI",
                        "INSCRIPTIONAL PAHLAVI",
                        "INSCRIPTIONALPAHLAVI");
        public static final UnicodeBlock OLD_TURKIC =
                new UnicodeBlock("OLD_TURKIC",
                        "OLD TURKIC",
                        "OLDTURKIC");
        public static final UnicodeBlock RUMI_NUMERAL_SYMBOLS =
                new UnicodeBlock("RUMI_NUMERAL_SYMBOLS",
                        "RUMI NUMERAL SYMBOLS",
                        "RUMINUMERALSYMBOLS");
        public static final UnicodeBlock BRAHMI =
                new UnicodeBlock("BRAHMI");
        public static final UnicodeBlock KAITHI =
                new UnicodeBlock("KAITHI");
        public static final UnicodeBlock CUNEIFORM =
                new UnicodeBlock("CUNEIFORM");

        public static final UnicodeBlock CUNEIFORM_NUMBERS_AND_PUNCTUATION =
                new UnicodeBlock("CUNEIFORM_NUMBERS_AND_PUNCTUATION",
                        "CUNEIFORM NUMBERS AND PUNCTUATION",
                        "CUNEIFORMNUMBERSANDPUNCTUATION");

        public static final UnicodeBlock EGYPTIAN_HIEROGLYPHS =
                new UnicodeBlock("EGYPTIAN_HIEROGLYPHS",
                        "EGYPTIAN HIEROGLYPHS",
                        "EGYPTIANHIEROGLYPHS");

        public static final UnicodeBlock BAMUM_SUPPLEMENT =
                new UnicodeBlock("BAMUM_SUPPLEMENT",
                        "BAMUM SUPPLEMENT",
                        "BAMUMSUPPLEMENT");

        public static final UnicodeBlock KANA_SUPPLEMENT =
                new UnicodeBlock("KANA_SUPPLEMENT",
                        "KANA SUPPLEMENT",
                        "KANASUPPLEMENT");

        public static final UnicodeBlock ANCIENT_GREEK_MUSICAL_NOTATION =
                new UnicodeBlock("ANCIENT_GREEK_MUSICAL_NOTATION",
                        "ANCIENT GREEK MUSICAL NOTATION",
                        "ANCIENTGREEKMUSICALNOTATION");

        public static final UnicodeBlock COUNTING_ROD_NUMERALS =
                new UnicodeBlock("COUNTING_ROD_NUMERALS",
                        "COUNTING ROD NUMERALS",
                        "COUNTINGRODNUMERALS");

        public static final UnicodeBlock MAHJONG_TILES =
                new UnicodeBlock("MAHJONG_TILES",
                        "MAHJONG TILES",
                        "MAHJONGTILES");

        public static final UnicodeBlock DOMINO_TILES =
                new UnicodeBlock("DOMINO_TILES",
                        "DOMINO TILES",
                        "DOMINOTILES");

        public static final UnicodeBlock PLAYING_CARDS =
                new UnicodeBlock("PLAYING_CARDS",
                        "PLAYING CARDS",
                        "PLAYINGCARDS");

        public static final UnicodeBlock ENCLOSED_ALPHANUMERIC_SUPPLEMENT =
                new UnicodeBlock("ENCLOSED_ALPHANUMERIC_SUPPLEMENT",
                        "ENCLOSED ALPHANUMERIC SUPPLEMENT",
                        "ENCLOSEDALPHANUMERICSUPPLEMENT");

        public static final UnicodeBlock ENCLOSED_IDEOGRAPHIC_SUPPLEMENT =
                new UnicodeBlock("ENCLOSED_IDEOGRAPHIC_SUPPLEMENT",
                        "ENCLOSED IDEOGRAPHIC SUPPLEMENT",
                        "ENCLOSEDIDEOGRAPHICSUPPLEMENT");

        public static final UnicodeBlock MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS =
                new UnicodeBlock("MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS",
                        "MISCELLANEOUS SYMBOLS AND PICTOGRAPHS",
                        "MISCELLANEOUSSYMBOLSANDPICTOGRAPHS");

        public static final UnicodeBlock EMOTICONS =
                new UnicodeBlock("EMOTICONS");

        public static final UnicodeBlock TRANSPORT_AND_MAP_SYMBOLS =
                new UnicodeBlock("TRANSPORT_AND_MAP_SYMBOLS",
                        "TRANSPORT AND MAP SYMBOLS",
                        "TRANSPORTANDMAPSYMBOLS");

        public static final UnicodeBlock ALCHEMICAL_SYMBOLS =
                new UnicodeBlock("ALCHEMICAL_SYMBOLS",
                        "ALCHEMICAL SYMBOLS",
                        "ALCHEMICALSYMBOLS");

        public static final UnicodeBlock CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C =
                new UnicodeBlock("CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C",
                        "CJK UNIFIED IDEOGRAPHS EXTENSION C",
                        "CJKUNIFIEDIDEOGRAPHSEXTENSIONC");

        public static final UnicodeBlock CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D =
                new UnicodeBlock("CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D",
                        "CJK UNIFIED IDEOGRAPHS EXTENSION D",
                        "CJKUNIFIEDIDEOGRAPHSEXTENSIOND");

        public static final UnicodeBlock ARABIC_EXTENDED_A =
                new UnicodeBlock("ARABIC_EXTENDED_A",
                        "ARABIC EXTENDED-A",
                        "ARABICEXTENDED-A");

        public static final UnicodeBlock SUNDANESE_SUPPLEMENT =
                new UnicodeBlock("SUNDANESE_SUPPLEMENT",
                        "SUNDANESE SUPPLEMENT",
                        "SUNDANESESUPPLEMENT");

        public static final UnicodeBlock MEETEI_MAYEK_EXTENSIONS =
                new UnicodeBlock("MEETEI_MAYEK_EXTENSIONS",
                        "MEETEI MAYEK EXTENSIONS",
                        "MEETEIMAYEKEXTENSIONS");

        public static final UnicodeBlock MEROITIC_HIEROGLYPHS =
                new UnicodeBlock("MEROITIC_HIEROGLYPHS",
                        "MEROITIC HIEROGLYPHS",
                        "MEROITICHIEROGLYPHS");

        public static final UnicodeBlock MEROITIC_CURSIVE =
                new UnicodeBlock("MEROITIC_CURSIVE",
                        "MEROITIC CURSIVE",
                        "MEROITICCURSIVE");

        public static final UnicodeBlock SORA_SOMPENG =
                new UnicodeBlock("SORA_SOMPENG",
                        "SORA SOMPENG",
                        "SORASOMPENG");

        public static final UnicodeBlock CHAKMA =
                new UnicodeBlock("CHAKMA");

        public static final UnicodeBlock SHARADA =
                new UnicodeBlock("SHARADA");

        public static final UnicodeBlock TAKRI =
                new UnicodeBlock("TAKRI");

        public static final UnicodeBlock MIAO =
                new UnicodeBlock("MIAO");

        public static final UnicodeBlock ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS =
                new UnicodeBlock("ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS",
                        "ARABIC MATHEMATICAL ALPHABETIC SYMBOLS",
                        "ARABICMATHEMATICALALPHABETICSYMBOLS");

        private static final int blockStarts[] = {
                0x0000,
                0x0080,
                0x0100,
                0x0180,
                0x0250,
                0x02B0,
                0x0300,
                0x0370,
                0x0400,
                0x0500,
                0x0530,
                0x0590,
                0x0600,
                0x0700,
                0x0750,
                0x0780,
                0x07C0,
                0x0800,
                0x0840,
                0x0860,
                0x08A0,
                0x0900,
                0x0980,
                0x0A00,
                0x0A80,
                0x0B00,
                0x0B80,
                0x0C00,
                0x0C80,
                0x0D00,
                0x0D80,
                0x0E00,
                0x0E80,
                0x0F00,
                0x1000,
                0x10A0,
                0x1100,
                0x1200,
                0x1380,
                0x13A0,
                0x1400,
                0x1680,
                0x16A0,
                0x1700,
                0x1720,
                0x1740,
                0x1760,
                0x1780,
                0x1800,
                0x18B0,
                0x1900,
                0x1950,
                0x1980,
                0x19E0,
                0x1A00,
                0x1A20,
                0x1AB0,
                0x1B00,
                0x1B80,
                0x1BC0,
                0x1C00,
                0x1C50,
                0x1C80,
                0x1CC0,
                0x1CD0,
                0x1D00,
                0x1D80,
                0x1DC0,
                0x1E00,
                0x1F00,
                0x2000,
                0x2070,
                0x20A0,
                0x20D0,
                0x2100,
                0x2150,
                0x2190,
                0x2200,
                0x2300,
                0x2400,
                0x2440,
                0x2460,
                0x2500,
                0x2580,
                0x25A0,
                0x2600,
                0x2700,
                0x27C0,
                0x27F0,
                0x2800,
                0x2900,
                0x2980,
                0x2A00,
                0x2B00,
                0x2C00,
                0x2C60,
                0x2C80,
                0x2D00,
                0x2D30,
                0x2D80,
                0x2DE0,
                0x2E00,
                0x2E80,
                0x2F00,
                0x2FE0,
                0x2FF0,
                0x3000,
                0x3040,
                0x30A0,
                0x3100,
                0x3130,
                0x3190,
                0x31A0,
                0x31C0,
                0x31F0,
                0x3200,
                0x3300,
                0x3400,
                0x4DC0,
                0x4E00,
                0xA000,
                0xA490,
                0xA4D0,
                0xA500,
                0xA640,
                0xA6A0,
                0xA700,
                0xA720,
                0xA800,
                0xA830,
                0xA840,
                0xA880,
                0xA8E0,
                0xA900,
                0xA930,
                0xA960,
                0xA980,
                0xA9E0,
                0xAA00,
                0xAA60,
                0xAA80,
                0xAAE0,
                0xAB00,
                0xAB30,
                0xABC0,
                0xAC00,
                0xD7B0,
                0xD800,
                0xDB80,
                0xDC00,
                0xE000,
                0xF900,
                0xFB00,
                0xFB50,
                0xFE00,
                0xFE10,
                0xFE20,
                0xFE30,
                0xFE50,
                0xFE70,
                0xFF00,
                0xFFF0,
                0x10000,
                0x10080,
                0x10100,
                0x10140,
                0x10190,
                0x101D0,
                0x10200,
                0x10280,
                0x102A0,
                0x102E0,
                0x10300,
                0x10330,
                0x10350,
                0x10380,
                0x103A0,
                0x103E0,
                0x10400,
                0x10450,
                0x10480,
                0x104B0,
                0x10800,
                0x10840,
                0x10860,
                0x10900,
                0x10920,
                0x10940,
                0x10980,
                0x109A0,
                0x10A00,
                0x10A60,
                0x10A80,
                0x10B00,
                0x10B40,
                0x10B60,
                0x10B80,
                0x10C00,
                0x10C50,
                0x10E60,
                0x10E80,
                0x11000,
                0x11080,
                0x110D0,
                0x11100,
                0x11150,
                0x11180,
                0x111E0,
                0x11680,
                0x116D0,
                0x12000,
                0x12400,
                0x12480,
                0x13000,
                0x13430,
                0x16800,
                0x16A40,
                0x16F00,
                0x16FA0,
                0x1B000,
                0x1B100,
                0x1D000,
                0x1D100,
                0x1D200,
                0x1D250,
                0x1D300,
                0x1D360,
                0x1D380,
                0x1D400,
                0x1D800,
                0x1EE00,
                0x1EF00,
                0x1F000,
                0x1F030,
                0x1F0A0,
                0x1F100,
                0x1F200,
                0x1F300,
                0x1F600,
                0x1F650,
                0x1F680,
                0x1F700,
                0x1F780,
                0x20000,
                0x2A6E0,
                0x2A700,
                0x2B740,
                0x2B820,
                0x2F800,
                0x2FA20,
                0xE0000,
                0xE0080,
                0xE0100,
                0xE01F0,
                0xF0000,
                0x100000
        };

        private static final UnicodeBlock[] blocks = {
                BASIC_LATIN,
                LATIN_1_SUPPLEMENT,
                LATIN_EXTENDED_A,
                LATIN_EXTENDED_B,
                IPA_EXTENSIONS,
                SPACING_MODIFIER_LETTERS,
                COMBINING_DIACRITICAL_MARKS,
                GREEK,
                CYRILLIC,
                CYRILLIC_SUPPLEMENTARY,
                ARMENIAN,
                HEBREW,
                ARABIC,
                SYRIAC,
                ARABIC_SUPPLEMENT,
                THAANA,
                NKO,
                SAMARITAN,
                MANDAIC,
                null,
                ARABIC_EXTENDED_A,
                DEVANAGARI,
                BENGALI,
                GURMUKHI,
                GUJARATI,
                ORIYA,
                TAMIL,
                TELUGU,
                KANNADA,
                MALAYALAM,
                SINHALA,
                THAI,
                LAO,
                TIBETAN,
                MYANMAR,
                GEORGIAN,
                HANGUL_JAMO,
                ETHIOPIC,
                ETHIOPIC_SUPPLEMENT,
                CHEROKEE,
                UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS,
                OGHAM,
                RUNIC,
                TAGALOG,
                HANUNOO,
                BUHID,
                TAGBANWA,
                KHMER,
                MONGOLIAN,
                UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED,
                LIMBU,
                TAI_LE,
                NEW_TAI_LUE,
                KHMER_SYMBOLS,
                BUGINESE,
                TAI_THAM,
                null,
                BALINESE,
                SUNDANESE,
                BATAK,
                LEPCHA,
                OL_CHIKI,
                null,
                SUNDANESE_SUPPLEMENT,
                VEDIC_EXTENSIONS,
                PHONETIC_EXTENSIONS,
                PHONETIC_EXTENSIONS_SUPPLEMENT,
                COMBINING_DIACRITICAL_MARKS_SUPPLEMENT,
                LATIN_EXTENDED_ADDITIONAL,
                GREEK_EXTENDED,
                GENERAL_PUNCTUATION,
                SUPERSCRIPTS_AND_SUBSCRIPTS,
                CURRENCY_SYMBOLS,
                COMBINING_MARKS_FOR_SYMBOLS,
                LETTERLIKE_SYMBOLS,
                NUMBER_FORMS,
                ARROWS,
                MATHEMATICAL_OPERATORS,
                MISCELLANEOUS_TECHNICAL,
                CONTROL_PICTURES,
                OPTICAL_CHARACTER_RECOGNITION,
                ENCLOSED_ALPHANUMERICS,
                BOX_DRAWING,
                BLOCK_ELEMENTS,
                GEOMETRIC_SHAPES,
                MISCELLANEOUS_SYMBOLS,
                DINGBATS,
                MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A,
                SUPPLEMENTAL_ARROWS_A,
                BRAILLE_PATTERNS,
                SUPPLEMENTAL_ARROWS_B,
                MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B,
                SUPPLEMENTAL_MATHEMATICAL_OPERATORS,
                MISCELLANEOUS_SYMBOLS_AND_ARROWS,
                GLAGOLITIC,
                LATIN_EXTENDED_C,
                COPTIC,
                GEORGIAN_SUPPLEMENT,
                TIFINAGH,
                ETHIOPIC_EXTENDED,
                CYRILLIC_EXTENDED_A,
                SUPPLEMENTAL_PUNCTUATION,
                CJK_RADICALS_SUPPLEMENT,
                KANGXI_RADICALS,
                null,
                IDEOGRAPHIC_DESCRIPTION_CHARACTERS,
                CJK_SYMBOLS_AND_PUNCTUATION,
                HIRAGANA,
                KATAKANA,
                BOPOMOFO,
                HANGUL_COMPATIBILITY_JAMO,
                KANBUN,
                BOPOMOFO_EXTENDED,
                CJK_STROKES,
                KATAKANA_PHONETIC_EXTENSIONS,
                ENCLOSED_CJK_LETTERS_AND_MONTHS,
                CJK_COMPATIBILITY,
                CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A,
                YIJING_HEXAGRAM_SYMBOLS,
                CJK_UNIFIED_IDEOGRAPHS,
                YI_SYLLABLES,
                YI_RADICALS,
                LISU,
                VAI,
                CYRILLIC_EXTENDED_B,
                BAMUM,
                MODIFIER_TONE_LETTERS,
                LATIN_EXTENDED_D,
                SYLOTI_NAGRI,
                COMMON_INDIC_NUMBER_FORMS,
                PHAGS_PA,
                SAURASHTRA,
                DEVANAGARI_EXTENDED,
                KAYAH_LI,
                REJANG,
                HANGUL_JAMO_EXTENDED_A,
                JAVANESE,
                null,
                CHAM,
                MYANMAR_EXTENDED_A,
                TAI_VIET,
                MEETEI_MAYEK_EXTENSIONS,
                ETHIOPIC_EXTENDED_A,
                null,
                MEETEI_MAYEK,
                HANGUL_SYLLABLES,
                HANGUL_JAMO_EXTENDED_B,
                HIGH_SURROGATES,
                HIGH_PRIVATE_USE_SURROGATES,
                LOW_SURROGATES,
                PRIVATE_USE_AREA,
                CJK_COMPATIBILITY_IDEOGRAPHS,
                ALPHABETIC_PRESENTATION_FORMS,
                ARABIC_PRESENTATION_FORMS_A,
                VARIATION_SELECTORS,
                VERTICAL_FORMS,
                COMBINING_HALF_MARKS,
                CJK_COMPATIBILITY_FORMS,
                SMALL_FORM_VARIANTS,
                ARABIC_PRESENTATION_FORMS_B,
                HALFWIDTH_AND_FULLWIDTH_FORMS,
                SPECIALS,
                LINEAR_B_SYLLABARY,
                LINEAR_B_IDEOGRAMS,
                AEGEAN_NUMBERS,
                ANCIENT_GREEK_NUMBERS,
                ANCIENT_SYMBOLS,
                PHAISTOS_DISC,
                null,
                LYCIAN,
                CARIAN,
                null,
                OLD_ITALIC,
                GOTHIC,
                null,
                UGARITIC,
                OLD_PERSIAN,
                null,
                DESERET,
                SHAVIAN,
                OSMANYA,
                null,
                CYPRIOT_SYLLABARY,
                IMPERIAL_ARAMAIC,
                null,
                PHOENICIAN,
                LYDIAN,
                null,
                MEROITIC_HIEROGLYPHS,
                MEROITIC_CURSIVE,
                KHAROSHTHI,
                OLD_SOUTH_ARABIAN,
                null,
                AVESTAN,
                INSCRIPTIONAL_PARTHIAN,
                INSCRIPTIONAL_PAHLAVI,
                null,
                OLD_TURKIC,
                null,
                RUMI_NUMERAL_SYMBOLS,
                null,
                BRAHMI,
                KAITHI,
                SORA_SOMPENG,
                CHAKMA,
                null,
                SHARADA,
                null,
                TAKRI,
                null,
                CUNEIFORM,
                CUNEIFORM_NUMBERS_AND_PUNCTUATION,
                null,
                EGYPTIAN_HIEROGLYPHS,
                null,
                BAMUM_SUPPLEMENT,
                null,
                MIAO,
                null,
                KANA_SUPPLEMENT,
                null,
                BYZANTINE_MUSICAL_SYMBOLS,
                MUSICAL_SYMBOLS,
                ANCIENT_GREEK_MUSICAL_NOTATION,
                null,
                TAI_XUAN_JING_SYMBOLS,
                COUNTING_ROD_NUMERALS,
                null,
                MATHEMATICAL_ALPHANUMERIC_SYMBOLS,
                null,
                ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS,
                null,
                MAHJONG_TILES,
                DOMINO_TILES,
                PLAYING_CARDS,
                ENCLOSED_ALPHANUMERIC_SUPPLEMENT,
                ENCLOSED_IDEOGRAPHIC_SUPPLEMENT,
                MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS,
                EMOTICONS,
                null,
                TRANSPORT_AND_MAP_SYMBOLS,
                ALCHEMICAL_SYMBOLS,
                null,
                CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B,
                null,
                CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C,
                CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D,
                null,
                CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT,
                null,
                TAGS,
                null,
                VARIATION_SELECTORS_SUPPLEMENT,
                null,
                SUPPLEMENTARY_PRIVATE_USE_AREA_A,
                SUPPLEMENTARY_PRIVATE_USE_AREA_B
        };


        /**
         * 返回表示包含给定字符,或Unicode的块中的对象 null如果字符不是一个定义的块中的一员
         */
        public static UnicodeBlock of(char c) {
            return of((int)c);
        }

        /**
         * 返回表示包含给定字符(Unicode代码点)Unicode的块中的对象,或 null如果字符是不限定的块中的一员
         */
        public static UnicodeBlock of(int codePoint) {
            if (!isValidCodePoint(codePoint)) {
                throw new IllegalArgumentException();
            }

            int top, bottom, current;
            bottom = 0;
            top = blockStarts.length;
            current = top/2;

            while (top - bottom > 1) {
                if (codePoint >= blockStarts[current]) {
                    bottom = current;
                } else {
                    top = current;
                }
                current = (top + bottom) / 2;
            }
            return blocks[current];
        }

        /**
         * 返回具有给定名称的UnicodeBlock
         */
        public static final UnicodeBlock forName(String blockName) {
            UnicodeBlock block = map.get(blockName.toUpperCase(Locale.US));
            if (block == null) {
                throw new IllegalArgumentException();
            }
            return block;
        }
    }


    /**
     * 静态枚举类UnicodeScript
     */
    public static enum UnicodeScript {
        COMMON,
        LATIN,
        GREEK,
        CYRILLIC,
        ARMENIAN,
        HEBREW,
        ARABIC,
        SYRIAC,
        THAANA,
        DEVANAGARI,
        BENGALI,
        GURMUKHI,
        GUJARATI,
        ORIYA,
        TAMIL,
        TELUGU,
        KANNADA,
        MALAYALAM,
        SINHALA,
        THAI,
        LAO,
        TIBETAN,
        MYANMAR,
        GEORGIAN,
        HANGUL,
        ETHIOPIC,
        CHEROKEE,
        CANADIAN_ABORIGINAL,
        OGHAM,
        RUNIC,
        KHMER,
        MONGOLIAN,
        HIRAGANA,
        KATAKANA,
        BOPOMOFO,
        HAN,
        YI,
        OLD_ITALIC,
        GOTHIC,
        DESERET,
        INHERITED,
        TAGALOG,
        HANUNOO,
        BUHID,
        TAGBANWA,
        LIMBU,
        TAI_LE,
        LINEAR_B,
        UGARITIC,
        SHAVIAN,
        OSMANYA,
        CYPRIOT,
        BRAILLE,
        BUGINESE,
        COPTIC,
        NEW_TAI_LUE,
        GLAGOLITIC,
        TIFINAGH,
        SYLOTI_NAGRI,
        OLD_PERSIAN,
        KHAROSHTHI,
        BALINESE,
        CUNEIFORM,
        PHOENICIAN,
        PHAGS_PA,
        NKO,
        SUNDANESE,
        BATAK,
        LEPCHA,
        OL_CHIKI,
        VAI,
        SAURASHTRA,
        KAYAH_LI,
        REJANG,
        LYCIAN,
        CARIAN,
        LYDIAN,
        CHAM,
        TAI_THAM,
        TAI_VIET,
        AVESTAN,
        EGYPTIAN_HIEROGLYPHS,
        SAMARITAN,
        MANDAIC,
        LISU,
        BAMUM,
        JAVANESE,
        MEETEI_MAYEK,
        IMPERIAL_ARAMAIC,
        OLD_SOUTH_ARABIAN,
        INSCRIPTIONAL_PARTHIAN,
        INSCRIPTIONAL_PAHLAVI,
        OLD_TURKIC,
        BRAHMI,
        KAITHI,
        MEROITIC_HIEROGLYPHS,
        MEROITIC_CURSIVE,
        SORA_SOMPENG,
        CHAKMA,
        SHARADA,
        TAKRI,
        MIAO,
        UNKNOWN;

        private static final int[] scriptStarts = {
                0x0000,
                0x0041,
                0x005B,
                0x0061,
                0x007B,
                0x00AA,
                0x00AB,
                0x00BA,
                0x00BB,
                0x00C0,
                0x00D7,
                0x00D8,
                0x00F7,
                0x00F8,
                0x02B9,
                0x02E0,
                0x02E5,
                0x02EA,
                0x02EC,
                0x0300,
                0x0370,
                0x0374,
                0x0375,
                0x037E,
                0x0384,
                0x0385,
                0x0386,
                0x0387,
                0x0388,
                0x03E2,
                0x03F0,
                0x0400,
                0x0485,
                0x0487,
                0x0531,
                0x0589,
                0x058A,
                0x0591,
                0x0600,
                0x060C,
                0x060D,
                0x061B,
                0x061E,
                0x061F,
                0x0620,
                0x0640,
                0x0641,
                0x064B,
                0x0656,
                0x0660,
                0x066A,
                0x0670,
                0x0671,
                0x06DD,
                0x06DE,
                0x0700,
                0x0750,
                0x0780,
                0x07C0,
                0x0800,
                0x0840,
                0x08A0,
                0x0900,
                0x0951,
                0x0953,
          

标签: 007b2ln传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台