将字符或者字符串转换为拼音首字母类

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;

/// <summary>
/// PinYin 的摘要说明
/// </summary>
public class PinYin
{
 public PinYin()
 {
  //
  // TODO: 在此处添加构造函数逻辑
  //
 }
    public static string GetPYString(string str)
    {

        string tempStr = "";
        foreach (char c in str)
        {
            if ((int)c >= 33 && (int)c <= 126)
            {//字母和符号原样保留
                tempStr += c.ToString();
            }
            else
            {//累加拼音声母
                tempStr += GetPYChar(c.ToString());
            }
        }
        return tempStr;
    }

    public static string GetPYChar(string c)
    {

        byte[] array = new byte[2];

        array = System.Text.Encoding.Default.GetBytes(c);

        int i = (short)(array[0] - '/0') * 256 + ((short)(array[1] - '/0'));


        if (i < 0xB0A1) return "*";

        if (i < 0xB0C5) return "a";

        if (i < 0xB2C1) return "b";

        if (i < 0xB4EE) return "c";

        if (i < 0xB6EA) return "d";

        if (i < 0xB7A2) return "e";

        if (i < 0xB8C1) return "f";

        if (i < 0xB9FE) return "g";

        if (i < 0xBBF7) return "h";

        if (i < 0xBFA6) return "j";

        if (i < 0xC0AC) return "k";

        if (i < 0xC2E8) return "l";

        if (i < 0xC4C3) return "m";

        if (i < 0xC5B6) return "n";

        if (i < 0xC5BE) return "o";

        if (i < 0xC6DA) return "p";

        if (i < 0xC8BB) return "q";

        if (i < 0xC8F6) return "r";

        if (i < 0xCBFA) return "s";

        if (i < 0xCDDA) return "t";

        if (i < 0xCEF4) return "w";

        if (i < 0xD1B9) return "x";

        if (i < 0xD4D1) return "y";

        if (i < 0xD7FA) return "z";


        return "*";

    }


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
--此函数默认返回汉字拼音首字母,第二个参数不为空则返回全拼。 create or replace function f_getFirstOrFullSpell(p_cnStr In varchar2,p_sign In number default null) return varchar2 as lv_spell varchar2(200); lv_temp Varchar2(10); lv_char varchar2(10); --lv_bytes varchar2(100); li_bytes Integer; --li_pos Integer; begin if p_cnStr is null then return ''; end if; for i In 1..length(p_cnStr) loop lv_char:=substr(p_cnStr,i,1); if lengthb(lv_char) = 1 then lv_spell:=lv_spell||lv_char; elsif lengthb(lv_char) = 2 then --Select replace(substrb(dump(lv_char,1010),instrb(dump(lv_char,1010),'ZHS16GBK:')),'ZHS16GBK: ','') Into lv_bytes from dual; --li_pos:=instr(lv_bytes,','); --li_bytes:=substr(lv_bytes,1,li_pos-1)*256+substr(lv_bytes,li_pos+1)-256*256; Select ascii(lv_char)-256*256 Into li_bytes From dual; select max(spell) Into lv_temp from table(f_getSpellcode) where code<=li_bytes; if p_sign is null then lv_spell:=lv_spell||substr(lv_temp,1,1); else lv_spell:=lv_spell||lv_temp; end if; elsif lengthb(lv_char) = 3 then --Select replace(substrb(dump(convert(lv_char,'ZHS16GBK','UTF8'),1010),instrb(dump(convert(lv_char,'ZHS16GBK','UTF8'),1010),'UTF8:')),'UTF8: ','') --Into lv_bytes from dual; --li_pos:=instr(lv_bytes,','); --li_bytes:=substr(lv_bytes,1,li_pos-1)*256+substr(lv_bytes,li_pos+1)-256*256; Select ascii(lv_char)-256*256 Into li_bytes From dual; select max(spell) Into lv_temp from table(f_getSpellcode) where code<=li_bytes; if p_sign is null then lv_spell:=lv_spell||substr(lv_char,1,1); else lv_spell:=lv_spell||lv_char; end if; end if; end loop; return lv_spell; end; --hanjs,07-10-24,此函数默认返回汉字拼音首字母,第二个参数不为空则返回全拼。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值