Console.WriteLine("----三大类库01_String----\r\n");
string str = "abcdefg";
string[] strs = new string[] { "12", "34", "56" };
#region 构造方法
Console.WriteLine("----构造方法----");
//1.new string(char[])
string s1 = new string(new char[] { '1', '2' });
Console.WriteLine(s1);//->"12"
//2.new string(char[],int)
string s2 = new string('a', 5);
Console.WriteLine(s2);//->"aaaaa"
#endregion
#region 常用属性
Console.WriteLine("----常用属性----");
//1.索引->'c'
Console.WriteLine(str[2]);
//2.length->7
Console.WriteLine(str.Length);
#endregion
#region 常用方法,分为增删改查其他五类
#region 增
Console.WriteLine("----常用方法_增----");
//1.构造方法
//2.string Insert(int startIndex,string value)
string s3 = str;
Console.WriteLine(s3.Insert(3, "mn"));//->"abcmndefg"
//3.string string.Join(string splitStr,string[])
string s4 = "ab";
Console.WriteLine(string.Join(s4, strs));//->12ab34ab56
//4.运算符+
//5.string string.Concat(string[]) || string string.Concat(string,[stirng]...)
Console.WriteLine(string.Concat(strs));//->"123456"
//6.string PadLeft(int,char) 在字符串左侧充填char,直到长度为int
Console.WriteLine(str.PadLeft(10, '0'));//->"000abcdefg"
//7.string PadRight(int,char)
Console.WriteLine(str.PadRight(10, '0'));//->"abcdefg000"
#endregion
#region 删
Console.WriteLine("----常用方法_删----");
//1.string Remove(int startIndex,int count)
Console.WriteLine(str.Remove(3, 2));//->"abcfg"
//2.string Replace(string,string)
Console.WriteLine(str.Replace("de", ""));//->"abcfg"
//3.string SubString(int startIndex,[int count])
Console.WriteLine(str.Substring(3, 2));//->"df"
//4.string Trim() || string Trim(char[])
Console.WriteLine(str.Trim(new char[] { 'a', 'd', 'f' }));//->"bcdefg"
//5.string TrimEnd()
//6.string TrimStart()
#endregion
#region 改
Console.WriteLine("----常用方法_改----");
//1.char[] ToCharArray 将此实例中的字符复制到 Unicode 字符数组。
Console.WriteLine(str.ToCharArray());//->{'a','b','c','d','e','f','g'}
//2.string Replece(string,string)
Console.WriteLine(str.Replace("cd", "23"));//->"ab23efg"
//3.string ToUpper
Console.WriteLine(str.ToUpper());//->"ABCDEFG"
//4.string ToLower
Console.WriteLine(str.ToUpper().ToLower());//->"abcdefg"
#endregion
#region 查
Console.WriteLine("----常用方法_查----");
//1.bool Contains(string)
Console.WriteLine(str.Contains("b"));//->true
//2.int IndexOf(char,startindex)
Console.WriteLine(str.IndexOf('b'));//->1
string s5 = "absidnngiab";
Console.WriteLine(s5.IndexOf('b', 2));//从索引为2的字符开始查找'b',返回其索引->10
//3.int LastIndexOf(char,int startindex)
//4.int IndexOfAny(char[],int startindex)
Console.WriteLine(str.IndexOfAny(new char[] { 'a', 'e' }, 2));//从索引为2的字符开始查找a或e,返回找到的第一个a或e的索引->4
//5.int LastIndexOfAny(char[],int startindex)
//6.bool StartsWith(string)
Console.WriteLine(str.StartsWith("abc"));//->true
//7.bool EndsWith(string)
Console.WriteLine(str.EndsWith("ef"));//->false
#endregion
#region 其他
Console.WriteLine("----常用方法_其他----");
//1.bool string.IsNullOrEmpty(string)
//2.string[] Splite(char/char[],)
string s6 = "a.b;.c. .gg;b.nn";
string[] strs1 = s6.Split('.');//->{}
string[] strs2 = s6.Split(new char[] { ';', '.' });//->{"a","b","","c"," ","gg","b","nn"}
string[] strs3 = s6.Split(new char[] { ';', '.' }, StringSplitOptions.RemoveEmptyEntries);//->{"a","b","","c","gg","b","nn"}
//3.bool Equals(string)
Console.WriteLine(str.Equals(str));//->str==str->true
//4.bool string.Equals(string,string)
//5.string string.Format(string, object[]);
Console.WriteLine(string.Format("a{0}b{1}c{2}", "A", "B", "C"));
//6.int string.Compare(string s1, string s2) 比较两个字符串的大小
// s1 > s2 -> 1
// s1 < s2 -> -1
// s1 = s2 -> 0
Console.WriteLine(string.Compare("a", "b"));//->-1
#endregion
#endregion
#region StringBuilder
//字符串不可变,长期拼接字符串性能较低
StringBuilder sb = new StringBuilder();
sb.Append("aa");
sb.AppendLine("bb");
sb.AppendFormat("{0}dd{1}", "cc", "ee");
sb.ToString();
Console.WriteLine(sb.ToString());//->"aabb\r\nccddee"
#endregion
Console.ReadKey();