一、语法介绍
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(); } } }