第3章 字符串处理技术

目录

实例1:汉字转换成汉语拼音(支持多音字)
实例2: 将字符串的每个字符进行颠倒输出
实例3:从字符串中分离文件路径、文件名及扩展名

实例1:汉字转换成汉语拼音

我之前在一篇文章中,了解过一些汉字转换成拼音的方式:https://www.jianshu.com/p/d9d830673a77
对于一些多音字的处理,如果有需要,可以特别定制一下。

然而,今天无意间,发现一个引用,貌似解决了这个问题。

添加ChineseConvertPinyin引用。
使用方式:

 static void Main(string[] args)
        {
            string chinese = "音乐,乐器,快乐,你和我,应和,和稀泥";
            ChineseConvertPinyin.ChineseToPinyin CTP = new ChineseConvertPinyin.ChineseToPinyin();
            var result = CTP.GetFullPinyin(chinese);

            Console.WriteLine(result);
            Console.ReadLine();
        }
2789632-4ef0e8722dec272d.png

连“和稀泥”都识别了,可见对多音字的识别已经做到很好了。

实例2: 将字符串的每个字符进行颠倒输出

将Hello world! 颠倒输出:
实现效果:


2789632-9f62e609b8389860.png

实现代码:

static void Main(string[] args)
        {
            string text = "Hello world!";
            char[] ch = text.ToArray();
            Array.Reverse(ch,0,text.Length);
            Console.WriteLine("颠倒后的字符串输出:"  + new StringBuilder().Append(ch).ToString());
            Console.ReadLine();
        }

注意,这里使用的Array类提供的方法,而不是char类型里面的方法。
其次,输出时,也是将字符存入StringBuilder后tostring(),直接将char.tostring()的话,得到的时system.char[]。

实例3:从字符串中分离文件路径、文件名及扩展名

实现效果:


2789632-7ffe6ca55ec813c0.gif

实现代码:

private void button1_Click(object sender, EventArgs e)
        {
            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                string file = openFileDialog.FileName;
                this.textBox1.Text = file.Substring(0, file.LastIndexOf("\\") + 1);
                this.textBox2.Text = file.Split('\\')[file.Split('\\').Length - 1].Split('.')[0];
                this.textBox3.Text = file.Split('\\')[file.Split('\\').Length - 1].Split('.')[1];
            }
        }
实例4: 获取字符串中汉字的个数

判断字符串“一个汉字,is right?”汉字个数。
实现效果:


2789632-1bc7c3f8c5cf4816.png

实现代码:

static void Main(string[] args)
        {
            int count = 0;
            string hanzi = "一个汉字,is right?";
            Regex P_regex = new Regex("^[\u4E00-\u9FA5]{0,}$"); //创建正则表达式对象,用于判断字符是否为汉字
            for (int i = 0; i < hanzi.Length; i++)
            {
                count = P_regex.IsMatch(hanzi[i].ToString()) ? ++count:count;
            }
            Console.WriteLine("汉字个数:" + count.ToString());
            Console.ReadLine();
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值