• c#之字符串函数


    1.常用的字符串函数 Compare 比较字符串的内容,考虑文化背景(场所),确定某些字符是否相等 int Compare(string str1,string str2) int Compare(string str1,string str2,bool ) CompareOrdinal 与Compare一样,但不考虑文化背景 CmpareTo 以实例对象本身指定的字符串作出比较 public int CompareTo(string strB) Equals 主要比较两个字符串是否相同 public bool Equals(string value) public static bool Equals(string a,string b) Format 格式化包含各种值的字符串和如何格式化每个值的说明符 public static string Format(string format,object obj) IndexOf 定位字符串中第一次出现某个给定子字符串或字符的位置 Substring 可以截取字符串中指定位置和长度的字符 public string Substring(int startlndex,int lenth) IndexOfAny 定位字符串中第一次出现某个字符或一组字符的位置 LastIndexOf 与IndexOf一样,但定位最后一次出现的位置 LastIndexOfAny 与IndexOfAny,但定位最后一次出现的位置 PadLeft 在字符串的开头,通过添加指定的重复字符填充字符串 public string Padleft(int tatalWidth,char paddingChar) PadRight 在字符串的结尾,通过添加指定的重复字符填充字符串 public string Padleft(int tatalWidth,char paddingChar) Replace 用另一个字符或子字符串替换字符串中给定的字符或子字符串 public string Replace(char Ocahr,char Ncahr) publci string Replace(string Ovalue,string nvalue) 2.可变字符串类StringBuilder的使用 动态串StringBuilder 与String类相比,System.Text.StringBuilder类可以实现动态字符串。此外,动态的含义是指在修改字符串时,系统不需要创建新的对象,不会重复开辟新的内存空间,而是直接在原StringBuilder对象的基础上进行修改。下面,将从各个应用的角度,详细讨论StringBuilder类。 2.1 声明StringBuilder串 StringBuilder类位于命名空间System.Text中,使用时,可以在文件头通过using语句引入该空间: using System.Text; 声明StringBuilder对象需要使用new关键字,并可以对其进行初始化。如以下语句声明了一个StringBuilder对象myStringBuilder,并初始化为“Hello”: StringBuildermyStringBuilder=new StringBuilder("Hello"); 如果不使用using关键字在文件头引入System.Text命名空间,也可以通过空间限定来声明StringBuilder对象: System.Text.StringBuildermyStringBuilder=new StringBuilder("Hello"); 在声明时,也可以不给出初始值,然后通过其方法进行赋值。 2.2 设置StringBuilder容量 StringBuilder对象为动态字符串,可以对其设置好的字符数量进行扩展。另外,还可以设置一个最大长度,这个最大长度称为该StringBuilder对象的容量(Capacity)。 为StringBuilder设置容量的意义在于,当修改StringBuilder字符串时,当其实际字符长度(即字符串已有的字符数量)未达到其容量之前,StringBuilder不会重新分配空间;当达到容量时,StringBuilder会在原空间的基础之上,自动不进行设置,StringBuilder默认初始分配16个字符长度。有两种方式来设置一个StringBuilder对象的容量。 1.使用构造函数 StringBuilder构造函数可以接受容量参数,例如,下面声明一个StringBuilder对象sb2,并设置其容量为100。 //使用构造函数 StringBuilder sb2=new StringBuilder("Hello",100); 2.使用Capacity读/写属性 Capacity属性指定StringBuilder对象的容量,例如下面语句首先一个StringBuilder对象sb3,然后利用Capacity属性设置其容量为100。 //使用Capacity属性 StringBuilder sb3=new StringBuilder("Hello"); sb3.Capacity=100; 3. 追加操作 追加一个StringBuilder是指将新的字符串添加到当前StringBuilder字符串的结尾处,可以使用Append和AppendFormat来实现这个功能。 1. Append方法 Append方法实现简单的追加功能,常用形式为: public StringBuilder Append(object value); 其中,参数value既可以是字符串类型,也可以是其他的数据类型,如bool、byte、int等。下例中,把一个StringBuilder字符串“Hello”追加为“Hello World!”。 //Append StringBuilder sb4=new StringBuilder("Hello"); sb4.Append(" World!"); 2.AppendFormat方法 AppendFormat方法可以实现对追加部分字符串的格式化,可以定义变量的格式,并将格式化后的字符串追加在StringBuilder后面。常用的形式为: StringBuilder AppendFormat(string format,params object[] args); 其中,args数组指定所要追加的多个变量。format参数包含格式规范的字符串,其中包括一系列用大括号括起来的格式字符,如{0:u}。这里,0代表对应args参数数组中的第0个变量,而‘u’定义其格式。下例中,把一个StringBuilder字符串“Today is”追加“Today is *当前日期*”。 //AppendFormat StringBuilder sb5=new StringBuilder("Today is "); sb5.AppendFormat("{0:yyyy-MM-dd}",System.DateTime.Now); Console.WriteLine(sb5); //形如:"Today is 2008-10-20" 4. 插入操作 StringBuilder的插入操作是指将新的字符串插入到当前的StringBuilder字符串的指定位置,如“Hello”变为“Heeeello”。可以使用StringBuilder类的Insert方法来实现这个功能,常用形式为: public StringBuilder Insert(int index, object value); 其中,参数index指定所要插入的位置,并从0开始索引,如index=1,则会在原字符串的第2个字符之前进行插入操作;同Append一样,参数value并不仅是只可取字符串类型。 5. 删除操作 StringBuilder的删除操作可以从当前StringBuilder字符串的指定位置,删除一定数量的字符,例如把“Heeeello”变为“Hello”。可以使用StringBuilder类的Remove方法来实现这个功能,常用形式为: public StringBuilder Remove(int startIndex, int length); 其中,参数startIndex指定所要删除的起始位置,其含义同Insert中的index相同;length参数指定所要删除的字符数量。下例中,把一个StringBuilder字符串“Heeeello”通过删除操作修改为“Hello”。 //Remove StringBuilder sb7=new StringBuilder("Heeello"); sb7.Remove(2,3); //在”He”后面删除个字符 Console.WriteLine(sb7); //"Hello!" 6. 替换操作 StringBuilder使用Replace方法来实现替换操作,例如把“Hello”变为“Hero”,就需要使用替换操作,将“ll”替换为“r”。这同String类的Replace方法非常类似,其常用 形式包括: public StringBuilder Replace(char oldChar, char newChar); public StringBuilder Replace(string oldValue, string newValue); 其中,参数oldChar和oldValue为待替换的字符和子串,而newChar和newValue为替换后的新字符和新子串。 下例把“Hello”通过替换为“Hero”。 //Replace StringBuilder sb8=new StringBuilder("Hello"); sb8=sb8.Replace("ll","r"); Console.WriteLine(sb8); //Hero
  • 相关阅读:
    线性表---顺序表&链表
    C++——虚函数表——typedef指向函数的指针
    C++——继承与多态
    C++——动态内存分配new--delete
    C++——模板---函数模板---类模板
    C++——指针---指向数组的指针---指向字符串的指针--指向函数的指针--指针的指针--指针的引用
    C++——this指针
    C++——运算符的重载---以成员函数方式重载---以友元函数方式重载
    C++——友元函数--友元类——friend关键字
    Ubuntu环境下实现WireShark抓取HTTPS
  • 原文地址:https://www.cnblogs.com/tandy/p/4840750.html
Copyright © 2020-2023  润新知