<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永久无码精品| 九九精品国产亚洲AV日韩| 国产99视频免费精品是看6| 亚洲成AV人片在WWW| 四虎永久成人免费影院域名| 国产亚洲精彩视频| 亚洲高清免费视频| 久久九九久精品国产免费直播| 久久精品夜色噜噜亚洲A∨| 国产麻豆成人传媒免费观看| 亚洲中文字幕无码久久精品1 | 国产亚洲精品一品区99热| a级毛片免费高清毛片视频| 久久亚洲精品视频| 95免费观看体验区视频| 亚洲人成在线免费观看| 日本黄色免费观看| 国产高清对白在线观看免费91| 亚洲级αV无码毛片久久精品| 精品国产免费一区二区三区香蕉| 久久夜色精品国产噜噜亚洲AV| 成年在线观看网站免费| 日本中文字幕免费看| 亚洲精品在线观看视频| 成人在线视频免费| 五月天婷婷免费视频| 亚洲国产精品自在线一区二区| 国产福利在线观看免费第一福利| 色欲aⅴ亚洲情无码AV| 亚洲国产精品无码久久一区二区| 2020因为爱你带字幕免费观看全集| 456亚洲人成影院在线观| 狠狠亚洲狠狠欧洲2019| 亚洲免费闲人蜜桃| 在线播放国产不卡免费视频| 亚洲沟沟美女亚洲沟沟| 午夜亚洲国产成人不卡在线| 2021国内精品久久久久精免费|