掌握这些C#的字符串运用技巧就很省事了

Posted 老虎中的小白Gentle

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了掌握这些C#的字符串运用技巧就很省事了相关的知识,希望对你有一定的参考价值。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace Test
{
    public partial class Form1 : Form
    {

        [DllImport("kernel32.dll")]
        public static extern Boolean AllocConsole();
        [DllImport("kernel32.dll")]
        public static extern Boolean FreeConsole();



        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            AllocConsole();
        }
        /// <summary>
        ///  1>把字符串变成字符数组,toCharArray()
        ///2>对字符数组进行修改
        ///3>把字符数组变成字符串,new string
        /// </summary>
        public void TestFunc()
        {
            string text = "我喜欢你";
            char[] chs = text.ToCharArray(); //把字符串变成字符数组
            chs[1] = '爱';
            chs[2] = 'o';
            text = new string(chs); //把字符数组变成字符串
            MessageBox.Show(text); //显示为我爱o你

        }
        public void TestFunc1()
        {
            string text = "hello";
            text = "world";
            MessageBox.Show(text);
        }

        /// <summary>
        ///   Upper:将字母转化为大写

        /// Lower:将字母转化为小写

        /// Equals:忽略字母的大小写
        /// </summary>
        public void TestFunc2()
        {
            string Str = "ABCDefgh";
            string Str1 = Str.ToUpper(); //字符变大写
            MessageBox.Show(Str1); //结果为ABCDEFGH

            string Str2 = Str.ToLower(); //字符变小写
            MessageBox.Show(Str2);//结果为abcdegfh
            
            if(Str1.Equals(Str2,StringComparison.OrdinalIgnoreCase))//比较两个字符 忽略大小写
            {
                MessageBox.Show("除了大小写都一样");
            }
     
        }

        /// <summary>
        /// Split:分割字符串

        /// Replace:替换某个字符串

        /// Countain:判断某字符串中是否包含某字符串
        /// </summary>
        public void TestFunc3()
        {
            string text = "好好学习,天天向上";
            bool isContain = text.Contains("好好学习");//判断字符串是否包含该字符串
            if(isContain)
            {
                //返回包含此字符串中的子字符串(由指定的 Char 数组的元素分隔)的 String 数组。参数指定是否返回空数组元素。
                //StringSplitOptions.RemoveEmptyEntries不返回空数组元素
                string[] str = text.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                if(str[0].Contains("学习"))
                {
                    str[0]= str[0].Replace("学习", "打机"); //把学习替换成打机
                    MessageBox.Show(string.Format("{0}----{1}", str[0], str[1]));  //格式化字符串
                    //展示为好好打机,天天向上
                }
                return; 
            }
            else
            {
                MessageBox.Show(text);
                return;
            }
        }
        public void TestFunc4()
        {
            string text = "aatbbcct   tddtfft";
            string[] str = text.Split(new char[] { 't' }, StringSplitOptions.None); //包含空数组元素
            for(int i=0; i<str.Length;i++)
            {
                Console.Write(str[i]);//写元素没有换行
            }
            //展示为aabbcc   ddff

        }

        /// <summary>
        ///  判断某个字符串是否以某个字符串开始(startwith)或以某个字符串结束(endwith)
        /// </summary>
        public void TestFunc5()
        {
            string text = "天气真清新";
            bool result = text.EndsWith("清新");
            if(result)
            {
                Console.WriteLine("匹配字符串的尾部");
            }
            else
            {
                Console.WriteLine("不匹配字符串的尾部");
            }

            string text1 = "今天你笑了吗";
            bool result1 = text1.StartsWith("今天你");
            if(result)
            {
                Console.WriteLine("匹配字符串的前缀");
            }
            else
            {
                Console.WriteLine("不匹配字符串的前缀");
            }
        }

        /// <summary>
        /// 判断某个字符在字符串中的索引
        /// </summary>
        public void TestFunc6()
        {
            //从前面开始找的
            string path = "天天练习打代码";
            int index = path.IndexOf("练习");
            Console.WriteLine(index.ToString()); //2

            index = path.IndexOf("练习",3, 2);   //从前向后"练习" 定位  从第3 位开始查,查2位,即 从第3位到第5位;
            Console.WriteLine(index.ToString()); //-1 

            string path1 = "hello你好hello你好hello";
            index = path1.IndexOf("hello", 3);   //从第三位开始查,第一个出现的位置
            Console.WriteLine(index.ToString()); //7

            //从后面开始找到的一个
            string lastpath = "天天练习打代码,天天写博客,天天看博客";
            int lastindex = lastpath.LastIndexOf("天天");
            Console.WriteLine(lastindex.ToString());//14

        }

        /// <summary>
        /// substring的用法:截取字符串中的一段字符
        /// </summary>
        public void TestFunc7()
        {
            string path = @"c:\\User\\Gentle\\Desktop\\test.txt"; //@用上后,代表后面的'\\'不带转义的作用
            int order = path.LastIndexOf("\\\\");//找到最后一个\\的位置
            string name = path.Substring(order + 1); //order+1的位置截取到字符串结尾
            Console.WriteLine("截取到文件名为:{0}", name);//test.txt

            string text = "abcdefgh";
            string str = text.Substring(4, 2); //4是对应的下标开始,截取2位
            Console.WriteLine("截取到的文本为:{0}", str); //ef

        }

        /// <summary>
        /// insert的用法:在字符串的某个索引前插入值
        /// </summary>
        public void TestFunc8()
        {
            string text = "我是一名程序员";
            text = text.Insert(4, "菜鸟");
            Console.WriteLine(text);//我是一名菜鸟程序员
        }

        /// <summary>
        ///  Insert与join的区别:Join是在字符串数组的前提下操作的,在每个数组元素中间插入内容,而Inset是对字符串操 作,在某个索引前插入内容;
        /// </summary>
        public void TestFunc9()
        {
            string[] text = { "鼠标", "键盘", "显示屏" };
           string str = string.Join("|", text);   //是静态函数
            Console.WriteLine(str);
        }

        /// <summary>
        /// string.IsNullOrEmpty()的用法:判断该字符串是否为null或string.Empty
        /// NULL:不分配内存,无对象
        /// "":分配内存空间,有对象
        /// </summary>
        public void TestFunc10()
        {
            string text = string.Empty;
            bool isNull = string.IsNullOrEmpty(text);//为静态方法
            if (isNull)
            {
                Console.WriteLine("没有信息"); //输出这一行
            }
            else
            {
                Console.WriteLine("信息为:{0}", text);
            }

        }

        /// <summary>
        /// Trim是去掉字符串两端的空格
        /// TrimEnd是去掉字符串最后面的空格
        /// TrimStart是去掉字符串最前面的空格
        /// </summary>
        public void TestFunc11()
        {
            string text = "   你好吗   ";
            text = text.Trim(); //"你好吗"
            Console.WriteLine(text); //

            string text2 = "   新年快乐  ";
            text2 = text2.TrimEnd(); //"  新年快乐"
            Console.WriteLine(text2);

            string text3 = "  点个赞   ";
            text3 = text3.TrimStart(); //"点个赞   "
            Console.WriteLine(text3);


        }

        /// <summary>
        /// Format 的用法,信息量有点大先简单说一下
        /// </summary>
        public void TestFunc12()
        {
            string str1 = "hello";
            string str2 = "world";
            Console.WriteLine(string.Format("{0},{1}", str1, str2));//它是一个静态函数,格式化合并字符串
             
            //格式化日期
            string Date1 = string.Format("{0:d}", System.DateTime.Now); //结果为:2021/5/13
            Console.WriteLine(Date1);
            string Date2 = string.Format("{0:D}", System.DateTime.Now); //结果为:2021年5月13日
            Console.WriteLine(Date2);
            string Date3 = string.Format("{0:f}", System.DateTime.Now); //结果为:2021年5月13日 17:06
            Console.WriteLine(Date3);
            string Date4 = string.Format("{0:F}", System.DateTime.Now); //结果为:2021年5月13日 17:06:27
            Console.WriteLine(Date4);
            string Date5 = string.Format("{0:g}", System.DateTime.Now); //结果为:2021/5/13 17:06
            Console.WriteLine(Date5);
            string Date6 = string.Format("{0:G}", System.DateTime.Now); //结果为:2021/5/13 17:06:27
            Console.WriteLine(Date6);
            string Date7 = string.Format("{0:m}", System.DateTime.Now); //结果为:5月13日
            Console.WriteLine(Date7);
            string Date8 = string.Format("{0:t}", System.DateTime.Now); //结果为:17:06
            Console.WriteLine(Date8);
            string Date9 = string.Format("{0:T}", System.DateTime.Now); //结果为:17:06:27
            Console.WriteLine(Date9);





        }

        private void button1_Click(object sender, EventArgs e)
        {
            TestFunc12();
        }
    }
}

以上是关于掌握这些C#的字符串运用技巧就很省事了的主要内容,如果未能解决你的问题,请参考以下文章

良好的编码习惯,只需掌握这5 个提高代码质量的技巧

30个必知的Linux命令技巧,你都掌握了吗

48个值得掌握的JavaScript代码片段(上)

重点来了!掌握这些Python技巧,将给你节省大量时间

你必须掌握的20个python代码,短小精悍,用处无穷

你必须掌握的20个python代码,短小精悍,用处无穷