C#真正可以使用的获得汉字的拼音缩写-测试过

本文介绍了一种通过C#实现的获取汉字拼音首字母缩写的方法。该方法首先判断字符是否为ASCII范围内的字符,如果不是,则转换为GB2312编码并根据汉字的区位码映射到对应的拼音首字母。

GetPinYinShort.cs文件。

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;

/// <summary>
/// GetPinYinShort 的摘要说明
/// </summary>

public class GetPinYinShort
{
    
public GetPinYinShort()
    
{
        
//
        
// TODO: 在此处添加构造函数逻辑
        
//
    }

     
/// <summary>
     
/// 获得给定字符串的首字母
     
/// </summary>
     
/// <param name="IndexTxt">需要获得的字符串</param>
     
/// <returns></returns>

    public string GetIndexCode(string indexTxt)
    
{
        
return IndexCode(indexTxt);
    }

    
//返回给定字符串的首字母
    private String IndexCode(String IndexTxt)
    
{
        String _Temp
=null;
        
for(int i=0;i<IndexTxt.Length;i++)
            _Temp 
= _Temp + GetOneIndex( IndexTxt.Substring(i,1) );
        
return _Temp;
    }

    
    
//得到单个字符的首字母
    private String GetOneIndex(String OneIndexTxt)
    
{
        
if(Convert.ToChar(OneIndexTxt)>=0 && Convert.ToChar(OneIndexTxt)<256)
            
return OneIndexTxt;
        
else
        
{
            Encoding gb2312 
= Encoding.GetEncoding("gb2312");
            
byte[] unicodeBytes = Encoding.Unicode.GetBytes(OneIndexTxt);
            
byte[] gb2312Bytes = Encoding.Convert(Encoding.Unicode, gb2312, unicodeBytes);
            
return GetX(Convert.ToInt32(String.Format("{0:D2}",Convert.ToInt16(gb2312Bytes[0])-160 )+ String.Format("{0:D2}",Convert.ToInt16(gb2312Bytes[1])-160)));
        }


    }


    
//根据区位得到首字母
    private String GetX(int GBCode)
    
{
        
if(GBCode >= 1601 && GBCode < 1637return "A";
        
if(GBCode >= 1637 && GBCode < 1833return "B";
        
if(GBCode >= 1833 && GBCode < 2078return "C";
        
if(GBCode >= 2078 && GBCode < 2274return "D";
        
if(GBCode >= 2274 && GBCode < 2302return "E";
        
if(GBCode >= 2302 && GBCode < 2433return "F";
        
if(GBCode >= 2433 && GBCode < 2594return "G";
        
if(GBCode >= 2594 && GBCode < 2787return "H";
        
if(GBCode >= 2787 && GBCode < 3106return "J";
        
if(GBCode >= 3106 && GBCode < 3212return "K";
        
if(GBCode >= 3212 && GBCode < 3472return "L";
        
if(GBCode >= 3472 && GBCode < 3635return "M";
        
if(GBCode >= 3635 && GBCode < 3722return "N";
        
if(GBCode >= 3722 && GBCode < 3730return "O";
        
if(GBCode >= 3730 && GBCode < 3858return "P";
        
if(GBCode >= 3858 && GBCode < 4027return "Q";
        
if(GBCode >= 4027 && GBCode < 4086return "R";
        
if(GBCode >= 4086 && GBCode < 4390return "S";
        
if(GBCode >= 4390 && GBCode < 4558return "T";
        
if(GBCode >= 4558 && GBCode < 4684return "W";
        
if(GBCode >= 4684 && GBCode < 4925return "X";
        
if(GBCode >= 4925 && GBCode < 5249return "Y";
        
if(GBCode >= 5249 && GBCode <= 5589return "Z";
        
if(GBCode >= 5601 && GBCode <= 8794)
        
{
            String CodeData 
= "cjwgnspgcenegypbtwxzdxykygtpjnmjqmbsgzscyjsyyfpggbzgydywjkgaljswkbjqhyjwpdzlsgmr"
                              
+ "ybywwccgznkydgttngjeyekzydcjnmcylqlypyqbqrpzslwbdgkjfyxjwcltbncxjjjjcxdtqsqzycdxxhgckbphffss"
                              
+ "pybgmxjbbyglbhlssmzmpjhsojnghdzcdklgjhsgqzhxqgkezzwymcscjnyetxadzpmdssmzjjqjyzcjjfwqjbdzbjgd"
                              
+ "nzcbwhgxhqkmwfbpbqdtjjzkqhylcgxfptyjyyzpsjlfchmqshgmmxsxjpkdcmbbqbefsjwhwwgckpylqbgldlcctnma"
                              
+ "eddksjngkcsgxlhzaybdbtsdkdylhgymylcxpycjndqjwxqxfyyfjlejbzrwccqhqcsbzkymgplbmcrqcflnymyqmsqt"
                              
+ "rbcjthztqfrxchxmcjcjlxqgjmshzkbswxemdlckfsydsglycjjssjnqbjctyhbftdcyjdgwyghqfrxwckqkxebpdjpx"
                              
+ "jqsrmebwgjlbjslyysmdxlclqkxlhtjrjjmbjhxhwywcbhtrxxglhjhfbmgykldyxzpplggpmtcbbajjzyljtyanjgbj"
                              
+ "flqgdzyqcaxbkclecjsznslyzhlxlzcghbxzhznytdsbcjkdlzayffydlabbgqszkggldndnyskjshdlxxbcghxyggdj"
                              
+ "mmzngmmccgwzszxsjbznmlzdthcqydbdllscddnlkjyhjsycjlkohqasdhnhcsgaehdaashtcplcpqybsdmpjlpcjaql"
                              
+ "cdhjjasprchngjnlhlyyqyhwzpnccgwwmzffjqqqqxxaclbhkdjxdgmmydjxzllsygxgkjrywzwyclzmcsjzldbndcfc"
                              
+ "xyhlschycjqppqagmnyxpfrkssbjlyxyjjglnscmhcwwmnzjjlhmhchsyppttxrycsxbyhcsmxjsxnbwgpxxtaybgajc"
                              
+ "xlypdccwqocwkccsbnhcpdyznbcyytyckskybsqkkytqqxfcwchcwkelcqbsqyjqcclmthsywhmktlkjlychwheqjhtj"
                              
+ "hppqpqscfymmcmgbmhglgsllysdllljpchmjhwljcyhzjxhdxjlhxrswlwzjcbxmhzqxsdzpmgfcsglsdymjshxpjxom"
                              
+ "yqknmyblrthbcftpmgyxlchlhlzylxgsssscclsldclepbhshxyyfhbmgdfycnjqwlqhjjcywjztejjdhfblqxtqkwhd"
                              
+ "chqxagtlxljxmsljhdzkzjecxjcjnmbbjcsfywkbjzghysdcpqyrsljpclpwxsdwejbjcbcnaytmgmbapclyqbclzxcb"
                              
+ "nmsggfnzjjbzsfqyndxhpcqkzczwalsbccjxpozgwkybsgxfcfcdkhjbstlqfsgdslqwzkxtmhsbgzhjcrglyjbpmljs"
                              
+ "xlcjqqhzmjczydjwbmjklddpmjegxyhylxhlqyqhkycwcjmyhxnatjhyccxzpcqlbzwwwtwbqcmlbmynjcccxbbsnzzl"
                              
+ "jpljxyztzlgcldcklyrzzgqtgjhhgjljaxfgfjzslcfdqzlclgjdjcsnclljpjqdcclcjxmyzftsxgcgsbrzxjqqcczh"
                              
+ "gyjdjqqlzxjyldlbcyamcstylbdjbyregklzdzhldszchznwczcllwjqjjjkdgjcolbbzppglghtgzcygezmycnqcycy"
                              
+ "hbhgxkamtxyxnbskyzzgjzlqjdfcjxdygjqjjpmgwgjjjpkjsbgbmmcjssclpqpdxcdyykypcjddyygywchjrtgcnyql"
                              
+ "dkljczzgzccjgdyksgpzmdlcphnjafyzdjcnmwescsglbtzcgmsdllyxqsxsbljsbbsgghfjlwpmzjnlyywdqshzxtyy"
                              
+ "whmcyhywdbxbtlmswyyfsbjcbdxxlhjhfpsxzqhfzmqcztqcxzxrdkdjhnnyzqqfnqdmmgnydxmjgdhcdycbffallztd"
                              
+ "ltfkmxqzdngeqdbdczjdxbzgsqqddjcmbkxffxmkdmcsychzcmljdjynhprsjmkmpcklgdbqtfzswtfgglyplljzhgjj"
                              
+ "gypzltcsmcnbtjbhfkdhbyzgkpbbymtdlsxsbnpdkleycjnycdykzddhqgsdzsctarlltkzlgecllkjljjaqnbdggghf"
                              
+ "jtzqjsecshalqfmmgjnlyjbbtmlycxdcjpldlpcqdhsycbzsckbzmsljflhrbjsnbrgjhxpdgdjybzgdlgcsezgxlblg"
                              
+ "yxtwmabchecmwyjyzlljjshlgndjlslygkdzpzxjyyzlpcxszfgwyydlyhcljscmbjhblyjlycblydpdqysxktbytdkd"
                              
+ "xjypcnrjmfdjgklccjbctbjddbblblcdqrppxjcglzcshltoljnmdddlngkaqakgjgyhheznmshrphqqjchgmfprxcjg"
                              
+ "dychghlyrzqlcngjnzsqdkqjymszswlcfqjqxgbggxmdjwlmcrnfkkfsyyljbmqammmycctbshcptxxzzsmphfshmclm"
                              
+ "ldjfyqxsdyjdjjzzhqpdszglssjbckbxyqzjsgpsxjzqznqtbdkwxjkhhgflbcsmdldgdzdblzkycqnncsybzbfglzzx"
                              
+ "swmsccmqnjqsbdqsjtxxmbldxcclzshzcxrqjgjylxzfjphymzqqydfqjjlcznzjcdgzygcdxmzysctlkphtxhtlbjxj"
                              
+ "lxscdqccbbqjfqzfsltjbtkqbsxjjljchczdbzjdczjccprnlqcgpfczlclcxzdmxmphgsgzgszzqjxlwtjpfsyaslcj"
                              
+ "btckwcwmytcsjjljcqlwzmalbxyfbpnlschtgjwejjxxglljstgshjqlzfkcgnndszfdeqfhbsaqdgylbxmmygszldyd"
                              
+ "jmjjrgbjgkgdhgkblgkbdmbylxwcxyttybkmrjjzxqjbhlmhmjjzmqasldcyxyqdlqcafywyxqhz";
            String _gbcode 
= GBCode.ToString();
            
int pos = (Convert.ToInt16(_gbcode.Substring(0,2))-56)*94+Convert.ToInt16(_gbcode.Substring(_gbcode.Length-2,2));       
            
return CodeData.Substring(pos-1,1);
        }

        
return "";
    }

}

 

default.aspx文件

 

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    
<title>获得汉字的拼音缩写</title>
</head>
<body>
    
<form id="form1" runat="server">
    
<div>
        输入汉字
        
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        
<br />
        
<br />
        拼音缩写
        
<asp:Label ID="Label1" runat="server" Text=""></asp:Label><br />
        
<br />
        
<asp:Button ID="Button1" runat="server" Text="获得拼音缩写" OnClick="Button1_Click" />
    
    
</div>
    
</form>
</body>
</html>

default.aspx.cs

 

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page 
{
    
protected void Page_Load(object sender, EventArgs e)
    
{

    }

    
protected void Button1_Click(object sender, EventArgs e)
    
{
        
if (TextBox1.Text != "")
        
{
            GetPinYinShort py 
= new GetPinYinShort();
            Label1.Text 
= py.GetIndexCode(TextBox1.Text);
        }

        
else
        
{
            Label1.Text 
= "请输入要查询的文字";
        }

    }

}

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值