- 浏览: 10821 次
- 性别:
- 来自: 深圳
最近访客 更多访客>>
最新评论
-
xiaojing4037429:
GB2312二级字库不是根据拼音弄的吧?
根据GB2312汉字区位码获取汉字拼音的工具类 -
slaser:
好像有时候看代码还更易懂点。
思路还是代码 -
codemonkey:
supercrsky 写道你的好文章在哪呢? SB
这就没意 ...
思路还是代码 -
androider:
这要看个人喜好了,如果你希望备份代码,那就你备份代码,如果你希 ...
思路还是代码 -
geminiyellow:
……撇清,楼主能不能帮我把我的回帖删掉,把萝卜招来了……
思路还是代码
申明:
本工具类的原型来自互联网,本人作了算法上的调整。所以严格上不算原创,只能算是编著。
主要思路:
根据gb2312汉字的区位码,建立区位码与拼音的对应关系,因为一定范围内的汉字区位码的拼音是一样的,例如,如果汉字的区位码在(20317,20319]范围内,那么其拼音为“a”。
所以本工具类首先建立连个数组,一个边界放区位码,何谓边界区位码,如20317与20318两个区位码相连续,但是其对应的拼音一个是“ai”,一个是“a”,不连续,那么20317就是边界区位码;一个数组存放边界区位码对应的拼音,利用边界区位码作为数组的索引,对应的拼音为值。
对于给定的汉字,首先计算器区位码,而后根据取上不取下的原则找到其拼音对应的边界区位码,如一个汉字的区位码是20318,那么20318两端的边界区位码一个是20317,一个是20319,根据取上不取下原则,获得20318对应的区位码拼音的边界区位码20319,根据20319获得20318的拼音为“a”。
缺点:字符集不大,仅限于gb312;多音字只对应一个音,如“银行”,“行走”中的“行”字的拼音是一样的,所以如果外部输入都是汉字,由本工具转换为拼音去查同音,没有问题,如果外部输入拼音,就有问题。
本工具类的原型来自互联网,本人作了算法上的调整。所以严格上不算原创,只能算是编著。
主要思路:
根据gb2312汉字的区位码,建立区位码与拼音的对应关系,因为一定范围内的汉字区位码的拼音是一样的,例如,如果汉字的区位码在(20317,20319]范围内,那么其拼音为“a”。
所以本工具类首先建立连个数组,一个边界放区位码,何谓边界区位码,如20317与20318两个区位码相连续,但是其对应的拼音一个是“ai”,一个是“a”,不连续,那么20317就是边界区位码;一个数组存放边界区位码对应的拼音,利用边界区位码作为数组的索引,对应的拼音为值。
对于给定的汉字,首先计算器区位码,而后根据取上不取下的原则找到其拼音对应的边界区位码,如一个汉字的区位码是20318,那么20318两端的边界区位码一个是20317,一个是20319,根据取上不取下原则,获得20318对应的区位码拼音的边界区位码20319,根据20319获得20318的拼音为“a”。
缺点:字符集不大,仅限于gb312;多音字只对应一个音,如“银行”,“行走”中的“行”字的拼音是一样的,所以如果外部输入都是汉字,由本工具转换为拼音去查同音,没有问题,如果外部输入拼音,就有问题。
/** * GB2313汉字转为对应的拼音的助手类 * <p> * created on 2007-10-12 下午06:13:03 * * @author chenzugang@gmail.com * */ public class GB2312ToAlphaUtil { private static String[] alphaArray = new String[20320]; static { alphaArray[20319] = "a"; alphaArray[20317] = "ai"; alphaArray[20304] = "an"; alphaArray[20295] = "ang"; alphaArray[20292] = "ao"; alphaArray[20283] = "ba"; alphaArray[20265] = "bai"; alphaArray[20257] = "ban"; alphaArray[20242] = "bang"; alphaArray[20230] = "bao"; alphaArray[20051] = "bei"; alphaArray[20036] = "ben"; alphaArray[20032] = "beng"; alphaArray[20026] = "bi"; alphaArray[20002] = "bian"; alphaArray[19990] = "biao"; alphaArray[19986] = "bie"; alphaArray[19982] = "bin"; alphaArray[19976] = "bing"; alphaArray[19805] = "bo"; alphaArray[19784] = "bu"; alphaArray[19775] = "ca"; alphaArray[19774] = "cai"; alphaArray[19763] = "can"; alphaArray[19756] = "cang"; alphaArray[19751] = "cao"; alphaArray[19746] = "ce"; alphaArray[19741] = "ceng"; alphaArray[19739] = "cha"; alphaArray[19728] = "chai"; alphaArray[19725] = "chan"; alphaArray[19715] = "chang"; alphaArray[19540] = "chao"; alphaArray[19531] = "che"; alphaArray[19525] = "chen"; alphaArray[19515] = "cheng"; alphaArray[19500] = "chi"; alphaArray[19484] = "chong"; alphaArray[19479] = "chou"; alphaArray[19467] = "chu"; alphaArray[19289] = "chuai"; alphaArray[19288] = "chuan"; alphaArray[19281] = "chuang"; alphaArray[19275] = "chui"; alphaArray[19270] = "chun"; alphaArray[19263] = "chuo"; alphaArray[19261] = "ci"; alphaArray[19249] = "cong"; alphaArray[19243] = "cou"; alphaArray[19242] = "cu"; alphaArray[19238] = "cuan"; alphaArray[19235] = "cui"; alphaArray[19227] = "cun"; alphaArray[19224] = "cuo"; alphaArray[19218] = "da"; alphaArray[19212] = "dai"; alphaArray[19038] = "dan"; alphaArray[19023] = "dang"; alphaArray[19018] = "dao"; alphaArray[19006] = "de"; alphaArray[19003] = "deng"; alphaArray[18996] = "di"; alphaArray[18977] = "dian"; alphaArray[18961] = "diao"; alphaArray[18952] = "die"; alphaArray[18783] = "ding"; alphaArray[18774] = "diu"; alphaArray[18773] = "dong"; alphaArray[18763] = "dou"; alphaArray[18756] = "du"; alphaArray[18741] = "duan"; alphaArray[18735] = "dui"; alphaArray[18731] = "dun"; alphaArray[18722] = "duo"; alphaArray[18710] = "e"; alphaArray[18697] = "en"; alphaArray[18696] = "er"; alphaArray[18526] = "fa"; alphaArray[18518] = "fan"; alphaArray[18501] = "fang"; alphaArray[18490] = "fei"; alphaArray[18478] = "fen"; alphaArray[18463] = "feng"; alphaArray[18448] = "fo"; alphaArray[18447] = "fou"; alphaArray[18446] = "fu"; alphaArray[18239] = "ga"; alphaArray[18237] = "gai"; alphaArray[18231] = "gan"; alphaArray[18220] = "gang"; alphaArray[18211] = "gao"; alphaArray[18201] = "ge"; alphaArray[18184] = "gei"; alphaArray[18183] = "gen"; alphaArray[18181] = "geng"; alphaArray[18012] = "gong"; alphaArray[17997] = "gou"; alphaArray[17988] = "gu"; alphaArray[17970] = "gua"; alphaArray[17964] = "guai"; alphaArray[17961] = "guan"; alphaArray[17950] = "guang"; alphaArray[17947] = "gui"; alphaArray[17931] = "gun"; alphaArray[17928] = "guo"; alphaArray[17922] = "ha"; alphaArray[17759] = "hai"; alphaArray[17752] = "han"; alphaArray[17733] = "hang"; alphaArray[17730] = "hao"; alphaArray[17721] = "he"; alphaArray[17703] = "hei"; alphaArray[17701] = "hen"; alphaArray[17697] = "heng"; alphaArray[17692] = "hong"; alphaArray[17683] = "hou"; alphaArray[17676] = "hu"; alphaArray[17496] = "hua"; alphaArray[17487] = "huai"; alphaArray[17482] = "huan"; alphaArray[17468] = "huang"; alphaArray[17454] = "hui"; alphaArray[17433] = "hun"; alphaArray[17427] = "huo"; alphaArray[17417] = "ji"; alphaArray[17202] = "jia"; alphaArray[17185] = "jian"; alphaArray[16983] = "jiang"; alphaArray[16970] = "jiao"; alphaArray[16942] = "jie"; alphaArray[16915] = "jin"; alphaArray[16733] = "jing"; alphaArray[16708] = "jiong"; alphaArray[16706] = "jiu"; alphaArray[16689] = "ju"; alphaArray[16664] = "juan"; alphaArray[16657] = "jue"; alphaArray[16647] = "jun"; alphaArray[16474] = "ka"; alphaArray[16470] = "kai"; alphaArray[16465] = "kan"; alphaArray[16459] = "kang"; alphaArray[16452] = "kao"; alphaArray[16448] = "ke"; alphaArray[16433] = "ken"; alphaArray[16429] = "keng"; alphaArray[16427] = "kong"; alphaArray[16423] = "kou"; alphaArray[16419] = "ku"; alphaArray[16412] = "kua"; alphaArray[16407] = "kuai"; alphaArray[16403] = "kuan"; alphaArray[16401] = "kuang"; alphaArray[16393] = "kui"; alphaArray[16220] = "kun"; alphaArray[16216] = "kuo"; alphaArray[16212] = "la"; alphaArray[16205] = "lai"; alphaArray[16202] = "lan"; alphaArray[16187] = "lang"; alphaArray[16180] = "lao"; alphaArray[16171] = "le"; alphaArray[16169] = "lei"; alphaArray[16158] = "leng"; alphaArray[16155] = "li"; alphaArray[15959] = "lia"; alphaArray[15958] = "lian"; alphaArray[15944] = "liang"; alphaArray[15933] = "liao"; alphaArray[15920] = "lie"; alphaArray[15915] = "lin"; alphaArray[15903] = "ling"; alphaArray[15889] = "liu"; alphaArray[15878] = "long"; alphaArray[15707] = "lou"; alphaArray[15701] = "lu"; alphaArray[15681] = "lv"; alphaArray[15667] = "luan"; alphaArray[15661] = "lue"; alphaArray[15659] = "lun"; alphaArray[15652] = "luo"; alphaArray[15640] = "ma"; alphaArray[15631] = "mai"; alphaArray[15625] = "man"; alphaArray[15454] = "mang"; alphaArray[15448] = "mao"; alphaArray[15436] = "me"; alphaArray[15435] = "mei"; alphaArray[15419] = "men"; alphaArray[15416] = "meng"; alphaArray[15408] = "mi"; alphaArray[15394] = "mian"; alphaArray[15385] = "miao"; alphaArray[15377] = "mie"; alphaArray[15375] = "min"; alphaArray[15369] = "ming"; alphaArray[15363] = "miu"; alphaArray[15362] = "mo"; alphaArray[15183] = "mou"; alphaArray[15180] = "mu"; alphaArray[15165] = "na"; alphaArray[15158] = "nai"; alphaArray[15153] = "nan"; alphaArray[15150] = "nang"; alphaArray[15149] = "nao"; alphaArray[15144] = "ne"; alphaArray[15143] = "nei"; alphaArray[15141] = "nen"; alphaArray[15140] = "neng"; alphaArray[15139] = "ni"; alphaArray[15128] = "nian"; alphaArray[15121] = "niang"; alphaArray[15119] = "niao"; alphaArray[15117] = "nie"; alphaArray[15110] = "nin"; alphaArray[15109] = "ning"; alphaArray[14941] = "niu"; alphaArray[14937] = "nong"; alphaArray[14933] = "nu"; alphaArray[14930] = "nv"; alphaArray[14929] = "nuan"; alphaArray[14928] = "nue"; alphaArray[14926] = "nuo"; alphaArray[14922] = "o"; alphaArray[14921] = "ou"; alphaArray[14914] = "pa"; alphaArray[14908] = "pai"; alphaArray[14902] = "pan"; alphaArray[14894] = "pang"; alphaArray[14889] = "pao"; alphaArray[14882] = "pei"; alphaArray[14873] = "pen"; alphaArray[14871] = "peng"; alphaArray[14857] = "pi"; alphaArray[14678] = "pian"; alphaArray[14674] = "piao"; alphaArray[14670] = "pie"; alphaArray[14668] = "pin"; alphaArray[14663] = "ping"; alphaArray[14654] = "po"; alphaArray[14645] = "pu"; alphaArray[14630] = "qi"; alphaArray[14594] = "qia"; alphaArray[14429] = "qian"; alphaArray[14407] = "qiang"; alphaArray[14399] = "qiao"; alphaArray[14384] = "qie"; alphaArray[14379] = "qin"; alphaArray[14368] = "qing"; alphaArray[14355] = "qiong"; alphaArray[14353] = "qiu"; alphaArray[14345] = "qu"; alphaArray[14170] = "quan"; alphaArray[14159] = "que"; alphaArray[14151] = "qun"; alphaArray[14149] = "ran"; alphaArray[14145] = "rang"; alphaArray[14140] = "rao"; alphaArray[14137] = "re"; alphaArray[14135] = "ren"; alphaArray[14125] = "reng"; alphaArray[14123] = "ri"; alphaArray[14122] = "rong"; alphaArray[14112] = "rou"; alphaArray[14109] = "ru"; alphaArray[14099] = "ruan"; alphaArray[14097] = "rui"; alphaArray[14094] = "run"; alphaArray[14092] = "ruo"; alphaArray[14090] = "sa"; alphaArray[14087] = "sai"; alphaArray[14083] = "san"; alphaArray[13917] = "sang"; alphaArray[13914] = "sao"; alphaArray[13910] = "se"; alphaArray[13907] = "sen"; alphaArray[13906] = "seng"; alphaArray[13905] = "sha"; alphaArray[13896] = "shai"; alphaArray[13894] = "shan"; alphaArray[13878] = "shang"; alphaArray[13870] = "shao"; alphaArray[13859] = "she"; alphaArray[13847] = "shen"; alphaArray[13831] = "sheng"; alphaArray[13658] = "shi"; alphaArray[13611] = "shou"; alphaArray[13601] = "shu"; alphaArray[13406] = "shua"; alphaArray[13404] = "shuai"; alphaArray[13400] = "shuan"; alphaArray[13398] = "shuang"; alphaArray[13395] = "shui"; alphaArray[13391] = "shun"; alphaArray[13387] = "shuo"; alphaArray[13383] = "si"; alphaArray[13367] = "song"; alphaArray[13359] = "sou"; alphaArray[13356] = "su"; alphaArray[13343] = "suan"; alphaArray[13340] = "sui"; alphaArray[13329] = "sun"; alphaArray[13326] = "suo"; alphaArray[13318] = "ta"; alphaArray[13147] = "tai"; alphaArray[13138] = "tan"; alphaArray[13120] = "tang"; alphaArray[13107] = "tao"; alphaArray[13096] = "te"; alphaArray[13095] = "teng"; alphaArray[13091] = "ti"; alphaArray[13076] = "tian"; alphaArray[13068] = "tiao"; alphaArray[13063] = "tie"; alphaArray[13060] = "ting"; alphaArray[12888] = "tong"; alphaArray[12875] = "tou"; alphaArray[12871] = "tu"; alphaArray[12860] = "tuan"; alphaArray[12858] = "tui"; alphaArray[12852] = "tun"; alphaArray[12849] = "tuo"; alphaArray[12838] = "wa"; alphaArray[12831] = "wai"; alphaArray[12829] = "wan"; alphaArray[12812] = "wang"; alphaArray[12802] = "wei"; alphaArray[12607] = "wen"; alphaArray[12597] = "weng"; alphaArray[12594] = "wo"; alphaArray[12585] = "wu"; alphaArray[12556] = "xi"; alphaArray[12359] = "xia"; alphaArray[12346] = "xian"; alphaArray[12320] = "xiang"; alphaArray[12300] = "xiao"; alphaArray[12120] = "xie"; alphaArray[12099] = "xin"; alphaArray[12089] = "xing"; alphaArray[12074] = "xiong"; alphaArray[12067] = "xiu"; alphaArray[12058] = "xu"; alphaArray[12039] = "xuan"; alphaArray[11867] = "xue"; alphaArray[11861] = "xun"; alphaArray[11847] = "ya"; alphaArray[11831] = "yan"; alphaArray[11798] = "yang"; alphaArray[11781] = "yao"; alphaArray[11604] = "ye"; alphaArray[11589] = "yi"; alphaArray[11536] = "yin"; alphaArray[11358] = "ying"; alphaArray[11340] = "yo"; alphaArray[11339] = "yong"; alphaArray[11324] = "you"; alphaArray[11303] = "yu"; alphaArray[11097] = "yuan"; alphaArray[11077] = "yue"; alphaArray[11067] = "yun"; alphaArray[11055] = "za"; alphaArray[11052] = "zai"; alphaArray[11045] = "zan"; alphaArray[11041] = "zang"; alphaArray[11038] = "zao"; alphaArray[11024] = "ze"; alphaArray[11020] = "zei"; alphaArray[11019] = "zen"; alphaArray[11018] = "zeng"; alphaArray[11014] = "zha"; alphaArray[10838] = "zhai"; alphaArray[10832] = "zhan"; alphaArray[10815] = "zhang"; alphaArray[10800] = "zhao"; alphaArray[10790] = "zhe"; alphaArray[10780] = "zhen"; alphaArray[10764] = "zheng"; alphaArray[10587] = "zhi"; alphaArray[10544] = "zhong"; alphaArray[10533] = "zhou"; alphaArray[10519] = "zhu"; alphaArray[10331] = "zhua"; alphaArray[10329] = "zhuai"; alphaArray[10328] = "zhuan"; alphaArray[10322] = "zhuang"; alphaArray[10315] = "zhui"; alphaArray[10309] = "zhun"; alphaArray[10307] = "zhuo"; alphaArray[10296] = "zi"; alphaArray[10281] = "zong"; alphaArray[10274] = "zou"; alphaArray[10270] = "zu"; alphaArray[10262] = "zuan"; alphaArray[10260] = "zui"; alphaArray[10256] = "zun"; alphaArray[10254] = "zuo"; } private static int[] positionArray = new int[396]; static { positionArray[395] = 20319; positionArray[394] = 20317; positionArray[393] = 20304; positionArray[392] = 20295; positionArray[391] = 20292; positionArray[390] = 20283; positionArray[389] = 20265; positionArray[388] = 20257; positionArray[387] = 20242; positionArray[386] = 20230; positionArray[385] = 20051; positionArray[384] = 20036; positionArray[383] = 20032; positionArray[382] = 20026; positionArray[381] = 20002; positionArray[380] = 19990; positionArray[379] = 19986; positionArray[378] = 19982; positionArray[377] = 19976; positionArray[376] = 19805; positionArray[375] = 19784; positionArray[374] = 19775; positionArray[373] = 19774; positionArray[372] = 19763; positionArray[371] = 19756; positionArray[370] = 19751; positionArray[369] = 19746; positionArray[368] = 19741; positionArray[367] = 19739; positionArray[366] = 19728; positionArray[365] = 19725; positionArray[364] = 19715; positionArray[363] = 19540; positionArray[362] = 19531; positionArray[361] = 19525; positionArray[360] = 19515; positionArray[359] = 19500; positionArray[358] = 19484; positionArray[357] = 19479; positionArray[356] = 19467; positionArray[355] = 19289; positionArray[354] = 19288; positionArray[353] = 19281; positionArray[352] = 19275; positionArray[351] = 19270; positionArray[350] = 19263; positionArray[349] = 19261; positionArray[348] = 19249; positionArray[347] = 19243; positionArray[346] = 19242; positionArray[345] = 19238; positionArray[344] = 19235; positionArray[343] = 19227; positionArray[342] = 19224; positionArray[341] = 19218; positionArray[340] = 19212; positionArray[339] = 19038; positionArray[338] = 19023; positionArray[337] = 19018; positionArray[336] = 19006; positionArray[335] = 19003; positionArray[334] = 18996; positionArray[333] = 18977; positionArray[332] = 18961; positionArray[331] = 18952; positionArray[330] = 18783; positionArray[329] = 18774; positionArray[328] = 18773; positionArray[327] = 18763; positionArray[326] = 18756; positionArray[325] = 18741; positionArray[324] = 18735; positionArray[323] = 18731; positionArray[322] = 18722; positionArray[321] = 18710; positionArray[320] = 18697; positionArray[319] = 18696; positionArray[318] = 18526; positionArray[317] = 18518; positionArray[316] = 18501; positionArray[315] = 18490; positionArray[314] = 18478; positionArray[313] = 18463; positionArray[312] = 18448; positionArray[311] = 18447; positionArray[310] = 18446; positionArray[309] = 18239; positionArray[308] = 18237; positionArray[307] = 18231; positionArray[306] = 18220; positionArray[305] = 18211; positionArray[304] = 18201; positionArray[303] = 18184; positionArray[302] = 18183; positionArray[301] = 18181; positionArray[300] = 18012; positionArray[299] = 17997; positionArray[298] = 17988; positionArray[297] = 17970; positionArray[296] = 17964; positionArray[295] = 17961; positionArray[294] = 17950; positionArray[293] = 17947; positionArray[292] = 17931; positionArray[291] = 17928; positionArray[290] = 17922; positionArray[289] = 17759; positionArray[288] = 17752; positionArray[287] = 17733; positionArray[286] = 17730; positionArray[285] = 17721; positionArray[284] = 17703; positionArray[283] = 17701; positionArray[282] = 17697; positionArray[281] = 17692; positionArray[280] = 17683; positionArray[279] = 17676; positionArray[278] = 17496; positionArray[277] = 17487; positionArray[276] = 17482; positionArray[275] = 17468; positionArray[274] = 17454; positionArray[273] = 17433; positionArray[272] = 17427; positionArray[271] = 17417; positionArray[270] = 17202; positionArray[269] = 17185; positionArray[268] = 16983; positionArray[267] = 16970; positionArray[266] = 16942; positionArray[265] = 16915; positionArray[264] = 16733; positionArray[263] = 16708; positionArray[262] = 16706; positionArray[261] = 16689; positionArray[260] = 16664; positionArray[259] = 16657; positionArray[258] = 16647; positionArray[257] = 16474; positionArray[256] = 16470; positionArray[255] = 16465; positionArray[254] = 16459; positionArray[253] = 16452; positionArray[252] = 16448; positionArray[251] = 16433; positionArray[250] = 16429; positionArray[249] = 16427; positionArray[248] = 16423; positionArray[247] = 16419; positionArray[246] = 16412; positionArray[245] = 16407; positionArray[244] = 16403; positionArray[243] = 16401; positionArray[242] = 16393; positionArray[241] = 16220; positionArray[240] = 16216; positionArray[239] = 16212; positionArray[238] = 16205; positionArray[237] = 16202; positionArray[236] = 16187; positionArray[235] = 16180; positionArray[234] = 16171; positionArray[233] = 16169; positionArray[232] = 16158; positionArray[231] = 16155; positionArray[230] = 15959; positionArray[229] = 15958; positionArray[228] = 15944; positionArray[227] = 15933; positionArray[226] = 15920; positionArray[225] = 15915; positionArray[224] = 15903; positionArray[223] = 15889; positionArray[222] = 15878; positionArray[221] = 15707; positionArray[220] = 15701; positionArray[219] = 15681; positionArray[218] = 15667; positionArray[217] = 15661; positionArray[216] = 15659; positionArray[215] = 15652; positionArray[214] = 15640; positionArray[213] = 15631; positionArray[212] = 15625; positionArray[211] = 15454; positionArray[210] = 15448; positionArray[209] = 15436; positionArray[208] = 15435; positionArray[207] = 15419; positionArray[206] = 15416; positionArray[205] = 15408; positionArray[204] = 15394; positionArray[203] = 15385; positionArray[202] = 15377; positionArray[201] = 15375; positionArray[200] = 15369; positionArray[199] = 15363; positionArray[198] = 15362; positionArray[197] = 15183; positionArray[196] = 15180; positionArray[195] = 15165; positionArray[194] = 15158; positionArray[193] = 15153; positionArray[192] = 15150; positionArray[191] = 15149; positionArray[190] = 15144; positionArray[189] = 15143; positionArray[188] = 15141; positionArray[187] = 15140; positionArray[186] = 15139; positionArray[185] = 15128; positionArray[184] = 15121; positionArray[183] = 15119; positionArray[182] = 15117; positionArray[181] = 15110; positionArray[180] = 15109; positionArray[179] = 14941; positionArray[178] = 14937; positionArray[177] = 14933; positionArray[176] = 14930; positionArray[175] = 14929; positionArray[174] = 14928; positionArray[173] = 14926; positionArray[172] = 14922; positionArray[171] = 14921; positionArray[170] = 14914; positionArray[169] = 14908; positionArray[168] = 14902; positionArray[167] = 14894; positionArray[166] = 14889; positionArray[165] = 14882; positionArray[164] = 14873; positionArray[163] = 14871; positionArray[162] = 14857; positionArray[161] = 14678; positionArray[160] = 14674; positionArray[159] = 14670; positionArray[158] = 14668; positionArray[157] = 14663; positionArray[156] = 14654; positionArray[155] = 14645; positionArray[154] = 14630; positionArray[153] = 14594; positionArray[152] = 14429; positionArray[151] = 14407; positionArray[150] = 14399; positionArray[149] = 14384; positionArray[148] = 14379; positionArray[147] = 14368; positionArray[146] = 14355; positionArray[145] = 14353; positionArray[144] = 14345; positionArray[143] = 14170; positionArray[142] = 14159; positionArray[141] = 14151; positionArray[140] = 14149; positionArray[139] = 14145; positionArray[138] = 14140; positionArray[137] = 14137; positionArray[136] = 14135; positionArray[135] = 14125; positionArray[134] = 14123; positionArray[133] = 14122; positionArray[132] = 14112; positionArray[131] = 14109; positionArray[130] = 14099; positionArray[129] = 14097; positionArray[128] = 14094; positionArray[127] = 14092; positionArray[126] = 14090; positionArray[125] = 14087; positionArray[124] = 14083; positionArray[123] = 13917; positionArray[122] = 13914; positionArray[121] = 13910; positionArray[120] = 13907; positionArray[119] = 13906; positionArray[118] = 13905; positionArray[117] = 13896; positionArray[116] = 13894; positionArray[115] = 13878; positionArray[114] = 13870; positionArray[113] = 13859; positionArray[112] = 13847; positionArray[111] = 13831; positionArray[110] = 13658; positionArray[109] = 13611; positionArray[108] = 13601; positionArray[107] = 13406; positionArray[106] = 13404; positionArray[105] = 13400; positionArray[104] = 13398; positionArray[103] = 13395; positionArray[102] = 13391; positionArray[101] = 13387; positionArray[100] = 13383; positionArray[99] = 13367; positionArray[98] = 13359; positionArray[97] = 13356; positionArray[96] = 13343; positionArray[95] = 13340; positionArray[94] = 13329; positionArray[93] = 13326; positionArray[92] = 13318; positionArray[91] = 13147; positionArray[90] = 13138; positionArray[89] = 13120; positionArray[88] = 13107; positionArray[87] = 13096; positionArray[86] = 13095; positionArray[85] = 13091; positionArray[84] = 13076; positionArray[83] = 13068; positionArray[82] = 13063; positionArray[81] = 13060; positionArray[80] = 12888; positionArray[79] = 12875; positionArray[78] = 12871; positionArray[77] = 12860; positionArray[76] = 12858; positionArray[75] = 12852; positionArray[74] = 12849; positionArray[73] = 12838; positionArray[72] = 12831; positionArray[71] = 12829; positionArray[70] = 12812; positionArray[69] = 12802; positionArray[68] = 12607; positionArray[67] = 12597; positionArray[66] = 12594; positionArray[65] = 12585; positionArray[64] = 12556; positionArray[63] = 12359; positionArray[62] = 12346; positionArray[61] = 12320; positionArray[60] = 12300; positionArray[59] = 12120; positionArray[58] = 12099; positionArray[57] = 12089; positionArray[56] = 12074; positionArray[55] = 12067; positionArray[54] = 12058; positionArray[53] = 12039; positionArray[52] = 11867; positionArray[51] = 11861; positionArray[50] = 11847; positionArray[49] = 11831; positionArray[48] = 11798; positionArray[47] = 11781; positionArray[46] = 11604; positionArray[45] = 11589; positionArray[44] = 11536; positionArray[43] = 11358; positionArray[42] = 11340; positionArray[41] = 11339; positionArray[40] = 11324; positionArray[39] = 11303; positionArray[38] = 11097; positionArray[37] = 11077; positionArray[36] = 11067; positionArray[35] = 11055; positionArray[34] = 11052; positionArray[33] = 11045; positionArray[32] = 11041; positionArray[31] = 11038; positionArray[30] = 11024; positionArray[29] = 11020; positionArray[28] = 11019; positionArray[27] = 11018; positionArray[26] = 11014; positionArray[25] = 10838; positionArray[24] = 10832; positionArray[23] = 10815; positionArray[22] = 10800; positionArray[21] = 10790; positionArray[20] = 10780; positionArray[19] = 10764; positionArray[18] = 10587; positionArray[17] = 10544; positionArray[16] = 10533; positionArray[15] = 10519; positionArray[14] = 10331; positionArray[13] = 10329; positionArray[12] = 10328; positionArray[11] = 10322; positionArray[10] = 10315; positionArray[9] = 10309; positionArray[8] = 10307; positionArray[7] = 10296; positionArray[6] = 10281; positionArray[5] = 10274; positionArray[4] = 10270; positionArray[3] = 10262; positionArray[2] = 10260; positionArray[1] = 10256; positionArray[0] = 10254; } /** * 获取输入字符串的拼音。对于输入的符号和英文字母,原样返回。 * <p>目前对一字多音的处理还欠缺,如”行业“的拼音会转为”xingye“。只能对GB2312字符集进行解析。 * @param gb2312Str 输入字符串 * @return */ public static String getAlpha(String gb2312Str) { if (!StringUtils.hasText(gb2312Str)) { return null; } char[] singleGB2312Chars = gb2312Str.toCharArray(); StringBuffer alphaBuffer = new StringBuffer(); for (int i = 0; i < singleGB2312Chars.length; i++) { String alpha = getSpellByAscii(getCnAscii((singleGB2312Chars[i]))); if(null == alpha) { alphaBuffer.append(singleGB2312Chars[i]); } else { alphaBuffer.append(alpha); } } return alphaBuffer.toString(); } /** * 获取给定字符串的拼音大写的首字母 * @param gb2312Str * @return */ public static String getCapitalAlpha(String gb2312Str) { if (!StringUtils.hasText(gb2312Str)) { return null; } char[] singleGB2312Chars = gb2312Str.toCharArray(); StringBuffer alphaBuffer = new StringBuffer(); for (int i = 0; i < singleGB2312Chars.length; i++) { String alpha = getSpellByAscii(getCnAscii((singleGB2312Chars[i]))); if (null != alpha) { alphaBuffer.append(alpha.toUpperCase().charAt(0)); } } return alphaBuffer.toString(); } /** * 获得单个汉字的Ascii. * * @param cn * char 汉字字符 * @return int 错误返回 0,否则返回ascii */ private static int getCnAscii(char cn) { byte[] bytes = (String.valueOf(cn)).getBytes(); if (bytes == null || bytes.length > 2 || bytes.length <= 0) { // 错误 return 0; } if (bytes.length == 1) { // 英文字符 return bytes[0]; } if (bytes.length == 2) { // 中文字符 int hightByte = 256 + bytes[0]; int lowByte = 256 + bytes[1]; int ascii = (256 * hightByte + lowByte) - 256 * 256; return ascii; } return 0; // 错误 } /** * 根据ASCII码找对应的拼音 * * @param ascii * int 字符对应的ASCII * @return String 拼音 */ private static String getSpellByAscii(int ascii) { if (ascii > 0 && ascii < 160) { // 单字符--英文或半角字符 return String.valueOf((char) ascii); } if (ascii < -20319 || ascii > -10247) { // 不知道的字符 return null; } int key = Math.abs(ascii); int startIndex = positionSearch(key); if (0 == startIndex && positionArray[startIndex + 1] < key) { return null; } return alphaArray[positionArray[startIndex]]; } /** * 折半法查找拼音位置 * * @param key * 汉字ascii码绝对值 * @return 对应的拼音位置 */ private static int positionSearch(int key) { int low = 1; int high = positionArray.length; int mid = (low + high) / 2; while (low < high) { if (key > positionArray[mid] && key < positionArray[mid + 1]) { return mid + 1; } else if (key <= positionArray[mid] && key > positionArray[mid - 1]) { return mid; } else if (key < positionArray[mid]) { high = mid - 1; } else { low = mid + 1; } mid = (low + high) / 2; } return mid; } }
相关推荐
0228 如何获取汉字拼音简码 151 0229 根据用户输入需求自动调整输入法 152 0230 根据生日自动计算年龄 153 0231 实现找零功能 153 0232 设计带记忆的数据录入窗口 154 0233 在窗体关闭时提示有未保存的...
0228 如何获取汉字拼音简码 151 0229 根据用户输入需求自动调整输入法 152 0230 根据生日自动计算年龄 153 0231 实现找零功能 153 0232 设计带记忆的数据录入窗口 154 0233 在窗体关闭时提示有未保存的...
实例015 类QQ的程序界面 18 实例016 类似Windows XP的程序界面 20 实例017 以图形按钮显示的界面 21 实例018 以树型显示的程序界面 23 实例019 以XPManifest组件显示界面 24 实例020 动态按钮的窗体界面...
实例044 汉字与区位码的转换 第5章 数组和集合 实例045 在数组中添加一个元素 实例046 在数组中添加一个数组 实例047 计算两个矩形矩阵的乘积 实例048 获取多维数组的行数与列数 实例049 使用快速排序法对一维数组...
实例044 汉字与区位码的转换 69 第5章 数组和集合 71 实例045 在数组中添加一个元素 72 实例046 在数组中添加一个数组 73 实例047 计算两个矩形矩阵的乘积 75 实例048 获取多维数组的行数与列数 78 实例049 使用快速...
26.在Windows98中,如果要输入GB2312-80规定以外的汉字,应当____C____。 A、从Windows98的CD盘上安装GBK汉字输入法 B、从软件厂商购买GBK汉字输入法 C、选择全拼输入法来输入汉字 D、在控制面板中选“输入法”,...