C#之 字符串详解

一、语法介绍

1、字符串类



2、用法



3、StringBuilder类



二、语法实践、


//此脚本主要讲解了string和StringBuilder的使用和对比


using System;
using System.Text;

namespace 字符串详解
{
    class Program
    {
        static void Main(string[] args)
        {
            #region  string(System.String的别名)用法详解

            string str = "我叫王豆豆";//使用string 关键字进行声明,赋值内容用双引号包含
            int len = str.Length;//字符串长度
            Console.WriteLine("字符串的长度是:" + len);

            if (str == "我叫王豆豆")//字符串比较
            {
                Console.WriteLine("字符串相同");
            }
            else
            {
                Console.WriteLine("字符串不同");
            }

            string str1 = "你好," + str;//使用加号进行字符串拼接
            Console.WriteLine("拼接后的字符串是:" + str1);

            char s = str1[4];//通过索引获取相应的字符
            Console.WriteLine("字符串的第四个字符是:" + s);

            for (int i = 0; i < str1.Length; i++)//遍历
            {
                Console.WriteLine("第{0}个字符是:{1}", i,str1[i]);
            }

            //CompareTo 比较
            string str2 = "wdd";
            //比较规则为26个字母的排序顺序,a比d靠前,所以返回1;f比d靠后,所以返回-1;d和d相等,所以返回0
            Console.WriteLine("wad与str2比较的结果是:" + str2.CompareTo("wad"));//1
            Console.WriteLine("wfd与str2比较的结果是:" + str2.CompareTo("wfd"));//-1
            Console.WriteLine("wdd与str2比较的结果是:" + str2.CompareTo("wdd"));//0

            //Replace 替换指定字符
            string str3 = "string";
            string str4 = str3.Replace("i", "");
            Console.WriteLine("string替换后的字符串为:" + str4);

            //Split 使用给定字符将字符串分割为数组
            string str5 = "wwww.360.com.cn";
            string[] str6 = str5.Split('.');
            for (int i = 0; i < str6.Length; i++)
            {
                Console.WriteLine("使用点分割后的字符串数组为:" + str6[i]);
            }

            //Substring 截取(初始索引加截取长度)
            string str7 = "20180619";
            string str8 = str7.Substring(2, 4);
            Console.WriteLine("从索引为2的位置截取四位后的字符串为:" + str8);

            //ToLower 全部转换成小写
            string str9 = "FUCKYOU";
            Console.WriteLine("FUCKYOU全部转换为小写后为:" + str9.ToLower());

            //ToUpper 全部转换成大写
            string str10 = "sonofbeach";
            Console.WriteLine("sonofbeach全部转换成大写后为:" + str10.ToUpper());

            //Trim 去除首尾空格 TrimStart:去除开头的空格 TrimEnd:去除末尾的空格
            string str11 = "  hello world !  ";
            Console.WriteLine("去除首位空格后的结果是:" + str11.Trim());

            //Concat 合并,拼接
            string str12 = "about that";
            Console.WriteLine("合并后的字符串是:" + string.Concat(str12,"girl"));

            //CopyTo 把字符串中指定的字符复制到另一个数组中
            string strSource = "changed";
            char[] destination = { 'T', 'h', 'e', ' ', 'i', 'n', 'i', 't', 'i', 'a', 'l', ' ','a', 'r', 'r', 'a', 'y' };
            strSource.CopyTo(0, destination, 4, strSource.Length);
            for (int i = 0; i < destination.Length; i++)
            {
                Console.WriteLine("第一次复制后的字符串结果是:" + destination[i]);
            }

            strSource = "A different string";
            strSource.CopyTo(2, destination, 3, 9);
            for (int i = 0; i < destination.Length; i++)
            {
                Console.WriteLine("第二次复制后的字符串结果是:" + destination[i]);
            }

            //Format
            string str13 = string.Format("{0:C}", 0.2);//结果为:¥0.20 (英文操作系统结果:$0.20)
            string str14 = string.Format("{0:N}", 14200); //结果为:14,200.00 (默认为小数点后面两位)
            string str15 = string.Format("{0:N3}", 14200.2458); //结果为:14,200.246 (自动四舍五入)
            string str16 = string.Format("{0:P}", 0.24583); //结果为:24.58% (默认保留百分的两位小数)
            string str17 = string.Format("{0:P1}", 0.24583); //结果为:24.6% (自动四舍五入)

            string.Format("{0:d}", DateTime.Now); //结果为:2009-3-20 (月份位置不是03)
            string.Format("{0:D}", DateTime.Now); //结果为:2009年3月20日
            string.Format("{0:f}", DateTime.Now); //结果为:2009年3月20日 15:37
            string.Format("{0:F}", DateTime.Now); //结果为:2009年3月20日 15:37:52
            string.Format("{0:g}", DateTime.Now); //结果为:2009-3-20 15:38
            string.Format("{0:G}", DateTime.Now); //结果为:2009-3-20 15:39:27
            string.Format("{0:m}", DateTime.Now); //结果为:3月20日
            string.Format("{0:t}", DateTime.Now); //结果为:15:41
            string.Format("{0:T}", DateTime.Now); //结果为:15:41:50

            Console.WriteLine("格式化的值为:{0}\n{1}\n{2}\n{3}\n{4}",str13,str14,str15,str16,str17);

            //IndexOf 查找到第一个匹配的字符的索引
            string str18 = "nicetomeetyou";
            Console.WriteLine("查找到第一个匹配的字符的索引是:" + str18.IndexOf("to"));

            //IndexOfAny
            string str19 = "helloeverybody";
            char[] mChar = new char[] {'o','e','v' };
            Console.WriteLine("IndexOfAny的结果是:" + str19.IndexOfAny(mChar, 4, 3));

            //Insert 从指定索引开始插入指定字符
            string str20 = "wasddsaw";
            str20 = str20.Insert(3, "zzz");
            Console.WriteLine("插入zzz后的字符串值为:" + str20);

            //Join 合并字符串数组,创建一个新的字符串
            string[] parts = { "Apple", "Orange", "Banana", "Pear", "Peach" };
            string result = string.Join(", ", parts);
            Console.WriteLine("合并后的新字符串为:" + result);

            //.net 4.0 中你可以直接列出所有数值,不必要生成数组
            var numsFromOneToTen = string.Join(",", "A", "B", "C", "D", "E");
            var variousObjects = string.Join("-", 1, 3.1415927, DateTime.Now);
            Console.WriteLine("合并后的新字符串为:{0}\n{1}" , numsFromOneToTen, variousObjects);

            #endregion


            #region StringBuilder用法详解(与string相比,如果是对字符串进行频繁操作的话,使用StringBuilder的效率更高)

            StringBuilder mStr1 = new StringBuilder("IamHero");//声明字符的构造
            StringBuilder mStr2 = new StringBuilder(20);//声明容量的构造
            StringBuilder mStr3 = new StringBuilder("IamHero", 100);//声明字符和容量的构造

            //Append 拼接
            mStr3.Append(",Iwantfly");
            Console.WriteLine("拼接后的字符串是:" + mStr3.ToString());

            //Remove 移除从指定索引开始向后的指定个数
            mStr3.Remove(3, 2);
            Console.WriteLine("移除后的字符串是:" + mStr3.ToString());

            //Replace 替换
            mStr3.Replace(",", "");
            Console.WriteLine("替换后的字符串是:" + mStr3.ToString());

            #endregion

            Console.ReadKey();
        }
    }
}

猜你喜欢

转载自blog.csdn.net/wanddoudou/article/details/80731465
今日推荐