<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    void

    取中文字符的拼音首字母

    /**
    * 取中文字符的拼音首字母
    * @author
    */
    public class GB2Alpha {
    /**
    * 字母Z使用了兩個標簽,這里有27個值,i, u, v都不做聲母, 跟隨前面的字母
    */
        private char[] chartable =
                {
                    '啊', '芭', '擦', '搭', '蛾', '發', '噶', '哈', '哈',
                    '擊', '喀', '垃', '媽', '拿', '哦', '啪', '期', '然',
                    '撒', '塌', '塌', '塌', '挖', '昔', '壓', '匝', '座'
                };

        private char[] alphatable =
                {
                    'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I',

                    'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'
                };


        private int[] table = new int[27];

        /**
        * 初始化
        */
        {
            for (int i = 0; i < 27; ++i) {
                table = gbValue(chartable);
            }
        }

        public GB2Alpha() {

        }

        /**
        * 主函數,輸入字符,得到他的聲母,英文字母返回對應的大寫字母,其他非簡體漢字返回 '0'
        */
        public char Char2Alpha(char ch) {

            if (ch >= 'a' && ch <= 'z')
                return (char) (ch - 'a' + 'A');
            if (ch >= 'A' && ch <= 'Z')
                return ch;


            int gb = gbValue(ch);
            if (gb < table[0])
                return '0';


            int i;
            for (i = 0; i < 26; ++i) {
                if (match(i, gb))
                    break;
            }

            if (i >= 26)
                return '0';
            else
                return alphatable;
        }

        /**
        * 根據一個包含漢字的字符串返回一個漢字拼音首字母的字符串
        * @param SourceStr
        * @return
        */
        public String String2Alpha(String SourceStr) {
            String Result = "";
            int StrLength = SourceStr.length();
            int i;
            try {
                for (i = 0; i < StrLength; i++) {
                    Result += Char2Alpha(SourceStr.charAt(i));
                }
            } catch (Exception e) {
                Result = "";
            }
            return Result;
        }

        private boolean match(int i, int gb) {
            if (gb < table)
                return false;

            int j = i + 1;

            //字母Z使用了兩個標簽
            while (j < 26 && (table == table))
                ++j;

            if (j == 26)
                return gb <= table;
            else
                return gb < table;

        }

        /**
        * 取出漢字的編碼
        */
        private int gbValue(char ch) {
            String str = new String();
            str += ch;
            try {
                byte[] bytes = str.getBytes("GB2312");
                if (bytes.length < 2)
                    return 0;
                return (bytes[0] << 8 & 0xff00) + (bytes[1] &
                        0xff);
            } catch (Exception e) {
                return 0;
            }

        }


        public static void main(String[] args) {
            GB2Alpha obj1 = new GB2Alpha();
            System.out.println(obj1.String2Alpha("小華"));
            return;
        }
    }

    posted on 2010-07-29 16:44 void 閱讀(271) 評論(0)  編輯  收藏 所屬分類: Java

    主站蜘蛛池模板: 亚洲精品免费网站| 亚洲日韩中文字幕| 无遮挡呻吟娇喘视频免费播放| 青青青国产在线观看免费网站| 亚洲国产香蕉碰碰人人| 中文字幕av无码不卡免费| 久久久久亚洲AV成人网人人网站| 一个人看的免费观看日本视频www 一个人看的免费视频www在线高清动漫 | 亚洲国产成人91精品| 99国产精品免费观看视频| 亚洲精品免费观看| 波多野结衣免费在线| 中文字幕亚洲精品无码| 大陆一级毛片免费视频观看i| 亚洲日本在线电影| 永久黄网站色视频免费直播| 黄色一级毛片免费看| 国产亚洲精午夜久久久久久| 免费在线中文日本| 亚洲成aⅴ人片在线观| 中文字幕人成无码免费视频 | 亚洲高清视频一视频二视频三| 农村寡妇一级毛片免费看视频| 亚洲国产成人五月综合网 | 亚洲一区精品无码| 久草免费手机视频| 2020亚洲男人天堂精品| 四虎影视在线永久免费观看| a级毛片毛片免费观看久潮喷| 亚洲第一成年人网站| 国产免费私拍一区二区三区| 成人性做爰aaa片免费看| 亚洲一区二区三区91| 亚洲成人一区二区| 99久久免费观看| 国产青草亚洲香蕉精品久久| 久久青青草原亚洲AV无码麻豆 | xx视频在线永久免费观看| 国产精品亚洲精品爽爽| 人人狠狠综合久久亚洲88| 成年性午夜免费视频网站不卡|