《专题一字符串处理技术专题ppt.ppt》由会员分享,可在线阅读,更多相关《专题一字符串处理技术专题ppt.ppt(44页珍藏版)》请在三一文库上搜索。
1、专题一 字符串处理技术,.NET提供了String类和System.Text命名空间等来快速实现字符串处理功能,下面对字符串处理进行详细介绍。,比较字符串 定位字符及子串 格式化字符串 截取字符串 分割字符串 插入和填充字符串 删除和剪贴字符串 复制字符串 替换字符串 StringBuilder的定义和使用 String和可变字符串类StringBuilder的区别,比较字符串,比较字符串是指按照字典排序的规则,判断两个字符串的大小。 String类中,常用的比较字符串的方法包括Compare,CompareTo以及Equals等。,1.Compare方法,Compare方法是String类的
2、静态方法,用于全面比较两个字符串对象。 常用的方法: int Compare(string strA,string strB) 参数说明: strA, strB待比较的两个字符串 返回值:,Demo: class Program static void Main(string args) String str1 = “你好“; String str2 = “你好吗“; /字符串比较 Console.WriteLine(String.Compare(str1, str2); Console.WriteLine(String.Compare(str1, str1); Console.WriteLi
3、ne(String.Compare(str2, str1); 结果:,2.CompareTo方法,CompareTo方法将当前字符串对象与另一个字符串对象作比较,作用与Compare类似,返回值也相同。 Demo: class Program static void Main(string args) string strA = “Hello“; string strB = “HI“; Console.WriteLine(strA.CompareTo(strB); 结果:,CompareTo与Compare区别: 1.CompareTo不是静态方法,可以通过一个String对象调用 2.Com
4、pareTo没有重载形式,只能按照大小写敏感方式比较两个整串。,3.Equals方法,Equals方法用于判断两个字符串是否相同。 Demo: class Program static void Main(string args) String strA = “1“; String strB = “1“; /Equals方法的使用 Console.WriteLine(String.Equals(strA,strB); Console.WriteLine(strA.Equals(strB); 结果:,定位字符及子串,定位子串是指一个字符串中寻找其中包含的子串或者某个字符。 在String类中,常
5、用的定位子串和字符的方法包括: StartWith/EndsWith IndexOf/LastIndexOf,1.StartWith/EndsWith方法,StartWith方法可以判断一个字符串对象是否以另一个子字符串开头,如果是,返回True,否则返回False。 EndsWith方法可以判断一个字符串是否以另一个字符串结尾。,Demo: class Program static void Main(string args) String strA = “Welcome to Beijin“; Console.WriteLine(strA.StartsWith(“W“); Console.
6、WriteLine(strA.EndsWith(“n“); 结果:,2.IndexOf/LastIndexOf方法,IndexOf方法用于搜索在上一个字符串中,某个特定的字符或子串第一次出现的位置,该方法区分大小写,并从字符串的首字符开始以0计数。如果字符串中不包含这个字符和子串,则返回-1。 LastIndexOf用于搜索在一个字符串中,某个特定的字符或字串最后一次出现的位置。,Demo: class Program static void Main(string args) String strA = “Hello World“; Console.WriteLine(Convert.ToS
7、tring(strA.IndexOf(“o“);/o第一次出现的位置 Console.WriteLine(Convert.ToString(strA.LastIndexOf(“o“);/o最后一次出现的位置 结果:,格式化字符串,Format方法用于创建格式化的字符串以及连接多个字符串对象。 方法的格式: public static string Format(string format,param object args) 说明: format:返回字符串的格式 args:一系列变量参数,示例: class Program static void Main(string args) stri
8、ng strA = “Hello“; string strB = “World“; string newStr = String.Format(“0,1“,strA,strB); Console.WriteLine(newStr); /将当前时间格式化为YYYY-MM-dd DateTime Dta = DateTime.Now; string strC = String.Format(“0:d“,Dta);/0:d表示将时间格式化为短日期表示形式 Console.WriteLine(strC); ,截取字符串,截取字符串需要用到String类的Substring方法,该方法用来从字符串中检索
9、子字符串 两种形式: 1.public string Substring(int startIndex) startIndex:字符串中子字符串的起始字符位置 返回值:一个String对象,它等于字符串中从 startIndex开始的子字符串,如果 startIndex等于此字符串的长度,则为 Empty。,2.public string Substring(int startIndex,int length) startIndex:子字符串的起始位置的索引 length:子字符串中的字符数 返回值:一个String,它等于字符串中从startIndex开始的长度为length的子字符串,如果
10、startIndex等于此字符串的长度且length为0,则为Empty。,Demo: class Program static void Main(string args) string strA = “Hello World“; Console.WriteLine(“strA=0“,strA); /截取从第三个字符开始到结束的子串 string strB = strA.Substring(3); Console.WriteLine(“strB=0“,strB); /截取从第六个字符开始,长度为5的子串 string strC = strA.Substring(6,5); Console.W
11、riteLine(“strC=0“,strC); 结果:,分割字符串,使用Split方法可以将一个字符串,按照某个分隔符,分割成一系列小的字符串。 例如:HelloWorld按照字符进行分割,可以得到3个小的字符串,即”Hello”,”(空串)和”World”。,Demo: class Program static void Main(string args) string strA = “成功“; char separator = ; string splitstrings = new string100; splitstrings = strA.Split(separator); int
12、i = 0; while (i splitstrings.Length) Console.WriteLine(“item0:1“,i,splitstringsi); i+; 结果:,插入和填充字符串,String类包含了一个字符串中插入新元素的方法,可以用Insert在字符串的任意位置插入任意字符。 使用String类的PadLeft/PadRight方法,可以在一个字符串的左右两侧进行字符填充。,1.Insert方法,Insert方法用于在一个字符串的指定位置插入另一个字符串,从而构造一个新的字符串。 class Program static void Main(string args) s
13、tring strA = “HI“; string strB = “World“; string newStr = “; newStr = strA.Insert(1,strB); /在指定的位置插入strB Console.WriteLine(newStr); ,2.PadLeft/PadRight方法,有时候需要对一个字符串进行填充,例如把”HI”变为长度为4个字符的字符串,并使用字符”填充,即变成”HI”或”HI”。 PadLeft方法用于在一个字符串的左侧进行填充,使其达到一定的长度。 PadRight方法用于在一个字符串的右侧进行填充,使其达到一定的长度。,Demo: class P
14、rogram static void Main(string args) /* PadLeft and PadRight 示例 */ string strA = “HI“; string strB = “; string strC = “; strB = strA.PadLeft(4,); strC = strA.PadRight(4,); Console.WriteLine(“strB=0“,strB); Console.WriteLine(“strC=0“,strC); ,删除和剪贴字符串,使用Remove方法在任意字符串的任意位置删除任意长度的子字符串。 使用Trim, TrimEnd或
15、TrimStart方法剪切掉字符串中的一些特殊字符。,1.Remove方法,Remove方法从一个字符串的指定位置开始,删除指定数量的字节。 方法格式: public String Remove(int startIndex,int Clunt) startIndex:用于指定开始删除的位置,索引从0开始。 Clunt:指定删除的字节数量,Demo: class Program static void Main(string args) string strA = “Happy“; string strB = “; strB = strA.Remove(2,3);/删除从第三个字符开始,长度为
16、3的子字符串 Console.WriteLine(“strA=0“,strA); Console.WriteLine(“strB=0“,strB); ,2.Trim方法,作用: 1.从字符串的开始位置和末尾移除空白字符的所有匹配项。 public string Trim() 返回值:一个新String,相当于将指定字符串的首尾空白字符移除后形成的字符串。 2.从字符串的开始和末尾移除数组中指定的一组字符的所有匹配项。 public string Trim(params char trimChars) trimChars:数组中包含了指定要去掉的字符,如果缺省,则删除空格符号。,返回值:从指定字
17、符串的开始和结尾移除trimChars中字符的所有匹配项后剩余的String,如果trimChars为空引用,则改为移除空白字符。,Dmeo: class Program static void Main(string args) string strA = “ Program Test “; string strB = “; string strC = “Happy#$“; char strD = ,#,$ ; strB = strA.Trim();/移除strA首尾的空白字符 Console.WriteLine(“strA=0“,strA); Console.WriteLine(“strB
18、=0“,strB); strB = “; strB = strC.Trim(strD);/移除strC中含有strD中的字符 Console.WriteLine(“strC=0“, strC); Console.WriteLine(“strB=0“, strB); ,3.TrimStart/TrimEnd方法,TrimStart方法:用来从字符串的开始位置移除数组中指定的一组字符的所有匹配项 public string TrimStart(params char trimChars) TrimEnd方法:用来从字符串的结尾移除数组中指定的一组字符的所有匹配项 public string Tri
19、mEnd(params char trimChars),Demo: class Program static void Main(string args) string strA = “; char strB = ,#,$ ; string strC = “ Happy #$“; strA = strC.TrimStart(strB); Console.WriteLine(“strC=0“,strC); Console.WriteLine(“strA=0“,strA); strA = “; strA = strC.TrimEnd(strB); Console.WriteLine(“strC=0
20、“, strC); Console.WriteLine(“strA=0“, strA); ,复制字符串,String类包含了复制字符串的两种方法Copy和CopyTo。 Copy方法:把一个字符串复制到另一个字符数组中。 CopyTo方法:可以实现和Copy相同的功能,同时可以复制源字符串中的一部分到一个字符数组中。,1.Copy方法,Copy方法格式: public static string Copy(string str) str:为需要复制的源字符串,方法返回目标字符串。 返回值:与str具有相同值的新String 示例: strA = “Hello”; strB = “”; strB
21、 = string.Copy(strA);,2.CopyTo方法,CopyTo方法格式: public void CopyTo(int sourceIndex,char destination,int destinationIndex, int count) CopyTo方法参数值及说明:,Demo: class Program static void Main(string args) string strA = “Happy“; char strB = new char100; strA.CopyTo(0,strB,0,3); Console.WriteLine(“strA=0“,strA
22、); Console.WriteLine(strB); ,替换字符串,要替换一个字符串中的某些特定的字符或者某个子串,使用Replace方法。 Replace方法: public string Replace(char oldChar,char newChar) oldChar:待替换的字符 newChar:替换后的字符 public string Replace(string oldstring,string newstring) oldstring:待替换的子串 newstring替换后的新子串,Demo: class Program static void Main(string arg
23、s) string strA = “Hello“; string strB = strA.Replace(“ll“,“r“); Console.WriteLine(“strA=0“,strA ); Console.WriteLine(“strB=0“,strB); ,StringBuilder的定义和使用,StringBuilder类位于System.Text命名空间下,表示可变字符串。 程序中存储不确定的字符串时,需要使用StringBuilder类。,StringBuilder类常用方法及说明:,Demo: class Program static void Main(string arg
24、s) /创建了一个StringBuilder的对象 StringBuilder Builder = new StringBuilder(); Builder.Append(“Hello World“);/追加字符串 Console.WriteLine(Builder); Builder.AppendFormat(“0 End“,“);/追加格式化字符串 Console.WriteLine(Builder); Builder.AppendLine(“ This is one line.“);/将默认的行终止符追加到结尾 Console.WriteLine(Builder); Builder.In
25、sert(0, “Begin “);/将指定对象的字符串插入到此实例指定位置 Console.WriteLine(Builder); /Builder.Length指Builder实例的长度 Builder.Remove(19,Builder.Length-19);/将指定范围的字符从实例中移除 Console.WriteLine(Builder); Builder.Replace(“Begin”,“Begin:”);/替换字符串 Console.WriteLine(Builder); ,总结: StringBuilder类表示值为可变字符序列的对象,其值可变的原因是由于在通过追加,删除,替换或插入而创建其实例后对其修改。,结果:,String和可变字符串类StringBuilder的区别,StringBuilder表示可变字符串,String是不可改变的。 使用System.String类中的方法时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配内存,在需要对字符串执行重复修改的情况下,与创建新的String对象相关的系统开销非常昂贵。 使用StringBuilder目的就是针对大量String操作,避免产生太多的临时对象,当程序只是对某个字符串进行一次或几次操作时,采用String类即可。,
链接地址:https://www.31doc.com/p-2698094.html