java 中文字符 获取首字母(一级二级字符)

public class StringTools {
    public StringTools() {
    }
    //取得拼音码
    public String getPinYM(String a) {
        //汉字区位码
        int li_SecPosValue[] = {1601, 1637, 1833, 2078, 2274, 2302, 2433, 2594,2787, 3106, 3212, 3472, 3635, 3722, 3730, 3858,4027, 4086, 4390, 4558, 4684, 4925, 5249, 5590};
        //存放国标一级汉字不同读音的起始区位码对应读音
        char lc_FirstLetter[] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J','K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S','T', 'W', 'X', 'Y', 'Z'};
        //二级字库偏移量
        int ioffset = 0;
        存放所有国标二级汉字读音
        java.lang.String ls_SecondSecTable =
                "CJWGNSPGCGNE[Y[BTYYZDXYKYGT[JNNJQMBSGZSCYJSYY" +
                "[PGKBZGY[YWJKGKLJYWKPJQHY[W[DZLSGMRYPYWWCCKZNKYYGTTNJJNYKKZYTCJNMCYLQLYPYQFQRPZSLWBTGKJFYXJWZLTBNCXJJJJTXDTTSQZYCDXXHGCK" +
                "[PHFFSS[YBGXLPPBYLL[HLXS[ZM[JHSOJNGHDZQYKLGJHSGQZHXQGKEZZWYSCSCJXYEYXADZPMDSSMZJZQJYZC[J" +
                "[WQJBYZPXGZNZCPWHKXHQKMWFBPBYDTJZZKQHYLYGXFPTYJYYZPSZLFCHMQSHGMXXSXJ[" +
                "[DCSBBQBEFSJYHXWGZKPYLQBGLDLCCTNMAYDDKSSNGYCSGXLYZAYBNPTSDKDYLHGYMYLCXPY" +
                "[JNDQJWXQXFYYFJLEJPZRXCCQWQQSBNKYMGPLBMJRQCFLNYMYQMSQYRBCJTHZTQFRXQHXMJJCJLXQGJMSHZKBSWYEMYLTXFSYDSWLYCJQXSJNQBSCTYHBFTDCYZDJWY" +
                "GHQFRXWCKQKXEBPTLPXJZSRMEBWHJLBJSLYYSMDXLCLQKXLHXJRZJMFQHXHWYWSBHTRXXGLHQHFNM[YKLDYXZPYLGG[MTCFPAJJZYLJTYANJGBJPLQGDZYQY" +
                "AXBKYSECJSZNSLYZHSXLZCGHPXZHZNYTDSBCJKDLZAYFMYDLEBBGQYZKXGLDNDNYSKJSHDLYXBCGHXYPKDJMMZNGMMCLGWZSZXZJFZNMLZZTHCSYDBDLLSCDD" +
                "NLKJYKJSYCJLKWHQASDKNHCSGANHDAASHTCPLCPQYBSDMPJLPZJOQLCDHJJYSPRCHN[NNLHLYYQYHWZPTCZGWWMZFFJQQQQYXACLBHKDJXDGMMYDJXZLLSYGX" +
                "GKJRYWZWYCLZMSSJZLDBYD[FCXYHLXCHYZJQ[[QAGMNYXPFRKSSBJLYXYSYGLNSCMHZWWMNZJJLXXHCHSY[[TTXRYCYXBYHCSMXJSZNPWGPXXTAYBGAJCXLY" +
                "[DCCWZOCWKCCSBNHCPDYZNFCYYTYCKXKYBSQKKYTQQXFCWCHCYKELZQBSQYJQCCLMTHSYWHMKTLKJLYCXWHEQQHTQH[PQ" +
                "[QSCFYMNDMGBWHWLGSLLYSDLMLXPTHMJHWLJZYHZJXHTXJLHXRSWLWZJCBXMHZQXSDZPMGFCSGLSXYMJSHXPJXWMYQKSMYPLRTHBXFTPMHYXLCHLHLZY" +
                "LXGSSSSTCLSLDCLRPBHZHXYYFHB[GDMYCNQQWLQHJJ[YWJZYEJJDHPBLQXTQKWHLCHQXAGTLXLJXMSL[HTZKZJECXJCJNMFBY[SFYWYBJZGNYSDZSQYRSLJ" +
                "PCLPWXSDWEJBJCBCNAYTWGMPAPCLYQPCLZXSBNMSGGFNZJJBZSFZYNDXHPLQKZCZWALSBCCJX[YZGWKYPSGXFZFCDKHJGXDLQFSGDSLQWZKXTMHSBGZMJZRGLYJ" +
                "BPMLMSXLZJQQHZYJCZYDJWBMYKLDDPMJEGXYHYLXHLQYQHKYCWCJMYYXNATJHYCCXZPCQLBZWWYTWBQCMLPMYRJCCCXFPZNZZLJPLXXYZTZLGDLDCKLYRZZGQTG" +
                "JHHGJLJAXFGFJZSLCFDQZLCLGJDJCSNZLLJPJQDCCLCJXMYZFTSXGCGSBRZXJQQCTZHGYQTJQQLZXJYLYLBCYAMCSTYLPDJBYREGKLZYZHLYSZQLZNWCZCLLWJQ" +
                "JJJKDGJZOLBBZPPGLGHTGZXYGHZMYCNQSYCYHBHGXKAMTXYXNBSKYZZGJZLQJDFCJXDYGJQJJPMGWGJJJPKQSBGBMMCJSSCLPQPDXCDYYKY[CJDDYYGYWRHJRTGZ" +
                "NYQLDKLJSZZGZQZJGDYKSHPZMTLCPWNJAFYZDJCNMWESCYGLBTZCGMSSLLYXQSXSBSJSBBSGGHFJLYPMZJNLYYWDQSHZXTYYWHMZYHYWDBXBTLMSYYYFSXJC[DXX" +
                "LHJHF[SXZQHFZMZCZTQCXZXRTTDJHNNYZQQMNQDMMG[YDXMJGDHCDYZBFFALLZTDLTFXMXQZDNGWQDBDCZJDXBZGSQQDDJCMBKZFFXMKDMDSYYSZCMLJDSYNSBRS" +
                "KMKMPCKLGDBQTFZSWTFGGLYPLLJZHGJ[GYPZLTCSMCNBTJBQFKTHBYZGKPBBYMTDSSXTBNPDKLEYCJNYDDYKZDDHQHSDZSCTARLLTKZLGECLLKJLQJAQNBDKKGHP" +
                "JTZQKSECSHALQFMMGJNLYJBBTMLYZXDCJPLDLPCQDHZYCBZSCZBZMSLJFLKRZJSNFRGJHXPDHYJYBZGDLQCSEZGXLBLGYXTWMABCHECMWYJYZLLJJYHLG[DJLSLY" +
                "GKDZPZXJYYZLWCXSZFGWYYDLYHCLJSCMBJHBLYZLYCBLYDPDQYSXQZBYTDKYXJY[CNRJMPDJGKLCLJBCTBJDDBBLBLCZQRPPXJCJLZCSHLTOLJNMDDDLNGKAQHQH" +
                "JGYKHEZNMSHRP[QQJCHGMFPRXHJGDYCHGHLYRZQLCYQJNZSQTKQJYMSZSWLCFQQQXYFGGYPTQWLMCRNFKKFSYYLQBMQAMMMYXCTPSHCPTXXZZSMPHPSHMCLMLDQF" +
                "YQXSZYYDYJZZHQPDSZGLSTJBCKBXYQZJSGPSXQZQZRQTBDKYXZKHHGFLBCSMDLDGDZDBLZYYCXNNCSYBZBFGLZZXSWMSCCMQNJQSBDQSJTXXMBLTXZCLZSHZCXRQ" +
                "JGJYLXZFJPHYMZQQYDFQJJLZZNZJCDGZYGCTXMZYSCTLKPHTXHTLBJXJLXSCDQXCBBTJFQZFSLTJBTKQBXXJJLJCHCZDBZJDCZJDCPRNPQCJPFCZLCLZXZDMXMPH" +
                "JSGZGSZZQLYLWTJPFSYASMCJBTZKYCWMYTCSJJLJCQLWZMALBXYFBPNLSFHTGJWEJJXXGLLJSTGSHJQLZFKCGNNNSZFDEQFHBSAQTGYLBXMMYGSZLDYDQMJJRGBJ" +

                "TKGDHGKBLQKBDMBYLXWCXYTTYBKMRTJZXQJBHLMHMJJZMQASLDCYXYQDLQCAFYWYXQHZ";


        java.lang.String sreturn = "";
        for (int j = 0; j < a.length(); j++) {
            String stemp = a.substring(j, j + 1);
            byte[] by = new byte[2];
            by = stemp.getBytes();
            if (by.length == 1) {
                sreturn = sreturn + stemp;
            } else {
                int ia = 96 + (int) by[0]; //区码
                int ib = 96 + (int) by[1]; //位码
                int in = ia * 100 + ib;
                if (in > 1600 && in < 5590) {
                    for (int i = 0; i < 24; i++) {
                        if (in < li_SecPosValue[i]) {
                            sreturn = sreturn + lc_FirstLetter[i-1];
                            break;
                        }
                    }
                } else {
                    ioffset = (ia - 56) * 94 + ib - 1;
                    if (ioffset >= 0 && ioffset <= 3007) {
                        sreturn = sreturn +
                                 ls_SecondSecTable.substring(ioffset,
                                ioffset + 1);
                    }
                }
            }
            sreturn = sreturn.toLowerCase();
        }
        return sreturn;
    }
public static void main(String[] args) {
  System.out.println( new StringTools().getPinYM( "我爱你" ));
}
}

输出的结果是:wan




GB2312汉字编码字符集对照表

第01区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
A1A0     ˉ ˇ ¨
A1B0
A1C0 ± × ÷
A1D0
A1E0 ° ¤ §
A1F0  
第02区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
A2A0                                
A2B0  
A2C0
A2D0
A2E0      
A2F0        
第03区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
A3A0  
A3B0
A3C0
A3D0 _
A3E0
A3F0  
第04区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
A4A0  
A4B0
A4C0
A4D0
A4E0
A4F0                        
第05区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
A5A0  
A5B0
A5C0
A5D0
A5E0
A5F0                  
第06区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
A6A0   Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο
A6B0 Π Ρ Σ Τ Υ Φ Χ Ψ Ω              
A6C0   α β γ δ ε ζ η θ ι κ λ μ ν ξ ο
A6D0 π ρ σ τ υ φ χ ψ ω              
A6E0                                
A6F0                                
第07区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
A7A0   А Б В Г Д Е Ё Ж З И Й К Л М Н
A7B0 О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э
A7C0 Ю Я                            
A7D0   а б в г д е ё ж з и й к л м н
A7E0 о п р с т у ф х ц ч ш щ ъ ы ь э
A7F0 ю я                            
第08区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
A8A0   ā á ǎ à ē é ě è ī í ǐ ì ō ó ǒ
A8B0 ò ū ú ǔ ù ǖ ǘ ǚ ǜ ü ê          
A8C0          
A8D0
A8E0            
A8F0                                
第09区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
A9A0        
A9B0
A9C0
A9D0
A9E0
A9F0                                
第10区 AAA0-AAFF 没有编码
第11区 ABA0-ABFF 没有编码
第12区 ACA0-ACFF 没有编码
第13区 ADA0-ADFF 没有编码
第14区 AEA0-AEFF 没有编码
第15区 AFA0-AFFF 没有编码
第16区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
B0A0  
B0B0
B0C0
B0D0
B0E0
B0F0  
第17区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
B1A0  
B1B0
B1C0
B1D0
B1E0 便
B1F0  
第18区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
B2A0  
B2B0 簿
B2C0
B2D0
B2E0
B2F0  
第19区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
B3A0  
B3B0
B3C0
B3D0 齿
B3E0
B3F0  
第20区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
B4A0   穿
B4B0 椿
B4C0
B4D0 蹿
B4E0
B4F0  
第21区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
B5A0  
B5B0
B5C0
B5D0
B5E0 殿
B5F0  
第22区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
B6A0  
B6B0
B6C0
B6D0
B6E0
B6F0 饿  
第23区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
B7A0  
B7B0
B7C0 仿 访
B7D0 忿
B7E0
B7F0  
第24区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C th> +D +E +F
B8A0  
B8B0
B8C0 竿
B8D0
B8E0 稿
B8F0  
第25区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
B9A0  
B9B0
B9C0
B9D0
B9E0 广
B9F0  
第26区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
BAA0  
BAB0
BAC0
BAD0
BAE0 鸿
BAF0  
第27区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
BBA0  
BBB0 怀
BBC0
BBD0 贿
BBE0
BBF0  
第28区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
BCA0  
BCB0
BCC0
BCD0
BCE0
BCF0  
第29区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
BDA0  
BDB0
BDC0 轿
BDD0
BDE0
BDF0  
第30区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
BEA0  
BEB0
BEC0
BED0
BEE0
BEF0  
第31区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
BFA0  
BFB0
BFC0
BFD0
BFE0
BFF0 岿  
第32区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
C0A0  
C0B0
C0C0
C0D0
C0E0
C0F0  
第33区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
C1A0  
C1B0
C1C0
C1D0
C1E0
C1F0 窿  
第34区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
C2A0  
C2B0 鹿
C2C0 绿
C2D0
C2E0
C2F0  
第35区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
C3A0  
C3B0
C3C0
C3D0
C3E0
C3F0  
第36区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
C4A0  
C4B0
C4C0
C4D0
C4E0
C4F0 尿  
第37区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
C5A0  
C5B0
C5C0
C5D0
C5E0
C5F0  
第38区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
C6A0  
C6B0
C6C0
C6D0
C6E0
C6F0  
第39区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
C7A0  
C7B0
C7C0
C7D0
C7E0
C7F0  
第40区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
C8A0  
C8B0
C8C0
C8D0
C8E0
C8F0  
第41区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
C9A0  
C9B0
C9C0
C9D0
C9E0
C9F0  
第42区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
CAA0   湿
CAB0 使
CAC0
CAD0 寿
CAE0
CAF0  
第43区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
CBA0  
CBB0
CBC0
CBD0 宿
CBE0
CBF0  
第44区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
CCA0  
CCB0
CCC0
CCD0
CCE0
CCF0  
第45区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
CDA0  
CDB0
CDC0 退
CDD0
CDE0
CDF0  
第46区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
CEA0  
CEB0
CEC0
CED0
CEE0
CEF0 西  
第47区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
CFA0  
CFB0
CFC0
CFD0 线
CFE0
CFF0  
第48区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
D0A0  
D0B0
D0C0
D0D0
D0E0
D0F0 婿  
第49区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
D1A0  
D1B0
D1C0
D1D0 沿
D1E0
D1F0  
第50区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
D2A0   耀
D2B0
D2C0
D2D0 亿
D2E0
D2F0  
第51区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
D3A0  
D3B0
D3C0
D3D0
D3E0 屿
D3F0  
第52区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
D4A0  
D4B0
D4C0
D4D0
D4E0
D4F0  
第53区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
D5A0  
D5B0
D5C0
D5D0
D5E0
D5F0  
第54区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
D6A0  
D6B0
D6C0
D6D0
D6E0
D6F0  
第55区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
D7A0  
D7B0
D7C0 姿
D7D0
D7E0
D7F0            
第56区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
D8A0   廿 丿
D8B0
D8C0
D8D0
D8E0
D8F0  
第57区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
D9A0  
D9B0
D9C0
D9D0
D9E0
D9F0  
第58区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
DAA0  
DAB0
DAC0 诿
DAD0
DAE0
DAF0  
第59区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
DBA0  
DBB0
DBC0
DBD0
DBE0
DBF0  
第60区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
DCA0  
DCB0
DCC0
DCD0
DCE0
DCF0  
第61区 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
DDA0  
DDB0
DDC0
DDD0
DDE0

你可能感兴趣的:(javase)