JAVA生成拼音码

public class TestApp {

    public static void main(String[] args) {
        System.out.println(getPinym("我是坑星星"));

    }

    public static 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 = 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.toUpperCase();
            }
            return sreturn;
        }  

}
时间: 2024-10-18 19:26:25

JAVA生成拼音码的相关文章

.net 生成拼音码与五笔码

首先加入配置文件: <?xml version="1.0" encoding="utf-8" ?> <CodeConfig> <SpellCode> <A>阿啊锕嗄厑哎哀唉埃挨溾锿鎄啀捱皑凒溰嘊敳皚癌毐昹嗳矮蔼躷噯藹譪霭靄艾伌爱砹硋隘嗌塧嫒愛碍暧瑷僾壒嬡懓薆曖璦鴱皧瞹馤鑀鱫安侒峖桉氨庵谙萻腤鹌蓭誝鞌鞍盦馣鮟盫韽啽雸垵俺唵埯铵隌揞罯銨犴岸按荌案胺豻堓婩暗貋儑錌黯肮岇昂昻枊盎醠凹坳垇柪軪爊敖厫隞嗷嗸嶅廒滶獒獓遨熬璈蔜翱聱螯

MSSQL 生成拼音码

MSSQL 生成拼音码 /*============================================================================== 名称:fn_Get_Pin 功能:生成拼音码 创建:XXX 时间:2009年2月23日 ==============================================================================*/ CREATE function [dbo].[fn_Get_Pi

存储过程 生成拼音码与五笔码

Create Function sf_ShortCode ( @Input nvarchar(4000), --输入的文字 @Kind Int=0 --0:拼音;1:五笔 ) Returns nvarchar(10) As Begin declare @word nchar(1),@Retu nvarchar(10) declare @5A nvarchar(1000),@5B nvarchar(1000),@5C nvarchar(1000), @5D nvarchar(1000),@5E n

java生成一维码

package com.warehouse.common.util; import org.jbarcode.JBarcode;import org.jbarcode.JBarcodeFactory;import org.jbarcode.encode.Code128Encoder;import org.jbarcode.encode.InvalidAtributeException;import org.jbarcode.paint.TextPainter;import org.jbarcod

SQL生成拼音首码

--生成拼音首码 CREATE function [dbo].[fn_GetPy](@str nvarchar(1000)) returns nvarchar(1000) --WITH ENCRYPTION as begin  declare @intLen int  declare @strRet nvarchar(1000)  declare @temp nvarchar(100)  set @intLen = len(@str)  set @strRet = ''  while @intL

生成sqlserver拼音码

--生成拼音首码 CREATE function fn_GetPy(@str nvarchar(4000)) returns nvarchar(4000) --WITH ENCRYPTION as begin declare @intLen int declare @strRet nvarchar(4000) declare @temp nvarchar(100) set @intLen = len(@str) set @strRet = '' while @intLen > 0 begin s

java js 汉字对应拼音码,五笔码转换

最近做项目的时候,要求将汉字名称自动生成拼音码和五笔码,用于搜索,排列分组等 例如: 在记录中生成拼音码和五笔码保存,可由于后续查询搜索 下图中就可根据拼音码或者五笔码输入到名称里查询信息——具体实现就不解释了,这里重点说明码转换问题 还有类似这种既可以进行字母(拼音码)排序,也可以在输入框内查询 好了闲话少说直接给出前端js 和后台工具类——这些都是从网上查的,自己在这汇总记录一下,原谅我当时没有记录是哪几位大神的原创. js代码——创建一个js 具体内容复制即可 // 汉字拼音首字母列表 本

java二维码生成

二维码,是一种采用黑白相间的平面几何图形经过相应的编码算法来记载文字.图画.网址等信息的条码图画.如下图 二维码的特色: 1.  高密度编码,信息容量大 可容纳多达1850个大写字母或2710个数字或1108个字节,或500多个汉字,比一般条码信息容量约高几十倍. 2.  编码规模广 该条码能够把图画.声响.文字.签字.指纹等能够数字化的信息进行编码,用条码表明出来:能够表明多种语言文字:可表明图画数据. 3.  容错能力强,具有纠错功用 这使得二维条码因穿孔.污损等导致部分损坏时,照样能够正确

Java生成并打印二维码

本次做订餐系统中,需要用到在Java生成二维码,并在jsp页面打印并输出,其中在action中生成二维码. 关键代码如下 1 public void reWeiMa() throws Exception{ 2 //设置页面不缓存 3 HttpServletResponse response = ServletActionContext.getResponse(); 4 HttpServletRequest quest = ServletActionContext.getRequest(); 5