汉字转拼音

设置页面:

代码意思见注解就不一一解析了

            //建立一个convertCh方法用于将汉字转换成全拼的拼音,其中,参数代表汉字字符串,此方法的返回值是转换后的拼音字符串

            public static string convertCh(string Chstr)

            {

                Regex reg= new Regex("^[\u4e00-\u9fa5]$");//验证是否输入汉字

                byte[] arr= new byte[2];

                string pystr = "";

                int asc = 0,M1 = 0,M2 = 0;

                char[] mChar = Chstr.ToCharArray();//获取汉字对应的字符数组

                for (int j = 0; j < mChar.Length; j++)

                { //如果输入的是汉字

                    if (reg.IsMatch(mChar[j].ToString()))

                    {

                        arr = System.Text.Encoding.Default.GetBytes(mChar[j].ToString());

                        M1 = (short)(arr[0]);

                        M2 = (short)(arr[1]);

                        asc = M1 * 256 + M2 - 65536;

                        if (asc > 0 && asc < 160)

                        { pystr += mChar[j];

                        } else

                        {switch (asc)

                            {

                                case -9254: pystr += "Zhen"; break;

                                case -8985: pystr += "Qian"; break;

                                case -5463: pystr += "Jia"; break;

                                case -8274: pystr += "Ge"; break;

                                case -5448: pystr += "Ga"; break;

                                case -5447: pystr += "La"; break;

                                case -4649: pystr += "Chen"; break;

                                case -5436: pystr += "Mao"; break;

                                case -5213: pystr += "Mao"; break;

                                case -3597: pystr += "Die"; break;

                                case -5659: pystr += "Tian"; break;

                                default:

                                    for (int i = (getValue.Length - 1); i >= 0; i--)

                                    {

                                        if (getValue[i] <= asc)//判断汉字的拼音区编码是否在指定范围内

                                        {

                                            pystr += getName[i];//如果不超出范围则获取对应的拼音

                                            break;

                                        }

                                    }

                                    break;

                            }   }    }

                    else//如果不是汉字

                    {

                        pystr += mChar[j].ToString();//如果不是汉字则返回

                    }

                }

                return pystr;//返回获取到的汉字拼音

            }

        }

装换按钮:

        private void button1_Click(object sender, EventArgs e)

        {

            txtpy.Text = ChnToPh.convertCh(txthz.Text);

        }

效果图如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值