C#复习(九)string字符串

xiaoxiao2021-03-01  41

一、string C#中单个字符用单引号包含就是char类型,('a'),单引号中放且只能放一个字符,不能为''。单个字符也可以表示为字符串,还可以有长度为0的字符串""。使用字符串中的Length属性来获得字符串中的字符个数。string可以看做是char的只读数组。char c = s[1];。例子:遍历输出string中的每个元素(正反序)。 C#中字符串有一个重要的特性:不可变性,字符串一旦声明就不再可以改变。所以只能通过索引来读取指定位置的char,不能对指定位置的char进行修改。可以理解为常量。 如果要对char进行修改,那么就必须创建一个新的字符串,用ToCharArray()方法得到字符串的char数组,对数组进行修改。             string str = "  abcdefg  ";             char[] c = str.ToCharArray();             c[2] = '.';             Console.WriteLine("ToCharArray得到字符数组,遍历字符数组:");             for (int m = 0; m < c.Length; m++)             {                 Console.WriteLine(c[m]);             }             Console.WriteLine("原始字符串");             Console.WriteLine(str);     结果为:      注意字符串是不可变的,所以这些函数都不会直接改变字符串的内容,而是把修改后的字符串的值通过函数返回值的形式返回。        1.ToLower():得到字符串的小写形式。             string str = "  ABcdefg  ";              Console.WriteLine("将字符全小写:" + str.ToLower());     结果为:         2.ToUpper():得到字符串的大写形式;             string str = "  ABcdefg  ";              string UPPER = str.ToUpper();             Console.WriteLine("将字符全大写:" + UPPER);             Console.WriteLine("原始字符串:" + str);     结果为:         3.Trim()去掉字符串两端的空隔。             string str = "  ABcdefg  ";              Console.WriteLine("去掉两端空格:" + str.Trim());     结果为:     去掉两端空格:ABcdefg    4.s1.Equals(s2, StringComparison.OrdinalIgnoreCase),两个字符串进行不区分大小写的比较。             string str = "  ABcdefg  ";              string str2 = "  abcdefg  ";             bool isEqual=  str.Equals(str2, StringComparison.OrdinalIgnoreCase);             Console.WriteLine(isEqual);     结果为:true    5.Split(params char[] separator):将字符串按照指定的字符分割为字符串数组;         Split(char[] separator,StringSplitOptions options):将字符串按照指定的char分割符分割为字符      串数组(options 取RemoveEmptyEntries的时候移除结果中的空白字符串);             string s = "aa,bb,cc,,, d,e";             char[] a= { ','};             string[] ss = s.Split(a, StringSplitOptions.RemoveEmptyEntries);             foreach (var item in ss)             {                 Console.WriteLine(item);             }     结果为:          Split(string[] separator, StringSplitOptions options):将字符串按照指定的string分割符分割为      字符串数组。     6.字符串替换:string Replace(string oldValue, string newValue)将字符串中的出现oldValue的      地方替换为newValue。例子:名字替换。             string str = "ABcdefg";             Console.WriteLine(str.Replace('A', 'a'));    //aBcdefg             Console.WriteLine(str.Replace("AB", "ab"));    //abcdefg    7.取子字符串:string Substring(int startIndex),取从位置startIndex开始一直到最后的子字符串      string Substring(int startIndex, int length):取从位置startIndex开始长度为length的子字符      串,如果子字符串的长度不足length则报错。             string str = "ABcdefg";             Console.WriteLine(str.Substring(4));  //efg             Console.WriteLine(str.Substring(4,2)); //ef 第二个参数不能超出范围,否则会报异常     8.str.CompareTo(str2):将此实例与指定的 String 对象进行比较,并指示此实例在排序顺序中是位      于指定的字符串之前、之后还是与其出现在同一位置。0<1<2<..             string str = "  ABcdefg  ";              string str2 = "  abcdefg  ";                      int num=  str.CompareTo(str2);//str>str2:1;相等0,小于为-1                 Console.WriteLine(num);     结果为:1    9.bool Contains(string value)判断字符串中是否含有子串value             string str = "ABcdefg";             string s = "AB";             Console.WriteLine(str.Contains(s));     结果为:true    10.bool StartsWith(string value)判断字符串是否以子串value开始;             string str = "ABcdefg";             string s = "AB";             Console.WriteLine(str.StartsWith(s));     结果为:true    11.bool EndsWith (string value)判断字符串是否以子串value结束;     12.int IndexOf(string value) 取子串value第一次出现的位置。             string str = "ABcdefg";             string s = "AB";             Console.WriteLine(str.IndexOf(s));     结果为:0    13.IsNullOrEmpty(string) 字符串判断为空或长度为0 的字符串(null和””)//String中的静态变量             string str = "ABcdefg";             Console.WriteLine(string.IsNullOrEmpty(s));     结果为:false 二、StringBuilder StringBuilder类为我们提供了很多对字符串进行修改的方法,方便我们对同一个字符串对象进行操作。 每次使用String类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的  String 对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用System.Text.StringBuilder类。构造函数:     StringBuilder(String),使用指定的字符串初始化 StringBuilder 类的新实例。     StringBuilder(String, Int32), 用指定的字符串和容量初始化 StringBuilder 类的新实例。 属性:     Capacity    获取或设置可包含在当前实例所分配的内存中的最大字符数。     Length       获取或设置当前 StringBuilder 对象的长度。 方法:    Append(String) 将指定字符串追加到当前   StringBuilder   的结尾。    Insert(Int32, String) 将字符串或对象插入到当前   StringBuilder  对象的指定索引处。    Remove(Int32, Int32) 从当前StringBuilder 中移除指定数量的字符,参数为:(位置,长度)     Replace(String, String)  将当前字符串中出现的所有指定字符串的替换为其他指定字符串             StringBuilder sb = new StringBuilder("abcdefg");             Console.WriteLine(sb.Capacity);             Console.WriteLine(sb.Length);             sb.Append("+ABCDEFG");             Console.WriteLine("追加:"+sb);             sb.Remove(5, 5);             Console.WriteLine("删除:"+sb);             sb.Insert(5, "...");             Console.WriteLine("插入:"+sb);             sb.Replace("abc", "***");             Console.WriteLine("修改:"+sb);             Console.WriteLine(sb.MaxCapacity);     结果为:      16      7      追加:abcdefg+ABCDEFG      删除:abcdeCDEFG      插入:abcde...CDEFG      修改:***de...CDEFG      2147483647
转载请注明原文地址: https://www.6miu.com/read-3450203.html

最新回复(0)