整理下操作字符串相关的属性和方法,主要是string和stringbuilder的使用。

字符串中可以包含转义符,如“\\n”(新行)和“\\t”(制表符)。
如果希望包含反斜杠,则它前面必须还有另一个反斜杠,如“\\”。
@ 符号会告知字符串构造函数忽略转义符和分行符。

      string str = \"-hello,world-\";

一般用Trim来删除指定字符,或者去除空格

        Console.WriteLine(str.Trim(\'-\'));//hello,world
        Console.WriteLine(str.TrimEnd(\'-\'));//-hello,world
        Console.WriteLine(str.TrimStart(\'-\'));//hello,world-

字符串访问,直接用索引即可,得到对应的字符

        Console.WriteLine(str[1]);//输入h

字符串遍历成单字节

        foreach (char myChar in str)
        {
            Console.WriteLine(\"{0}\", myChar);
        }


输出.png

字符串转字节数组ToCharArray

        char[] c = str.ToCharArray();
        for (int i = 0; i < c.Length; i++)
        {
            Console.WriteLine(c[i]);
        }

输出效果和遍历成单字节一样

分割字符串Split

        string[] s = str.Split(\',\');
        for (int i = 0; i < s.Length; i++)
        {
            Console.WriteLine(s[i]);//s[0]=-hello s[1]=world
        }

多个不同的字符也可分割,例如

        string s1 = \"hello-world*hello curry\";
        string[] s2 = s1.Split(\'-\', \'*\', \' \');
        for (int i = 0; i < s2.Length; i++)
        {
            Console.WriteLine(s2[i]);
        }

此时输出为


分割字符串.png

串联字符串

        Console.WriteLine(string.Join(\"*\",new object[]{12,\"hello\",DateTime.Now}));
        Console.WriteLine(string.Join(\" \",12,\"hello\",36));

替换字符串

        Console.WriteLine(str.Replace(\'-\', \'*\'));//*hello,world*

获取指定字符对应的索引位置

        Console.WriteLine(str.IndexOf(\',\'));//6
        Console.WriteLine(str.IndexOf(\'。\'));//-1  如果找到该字符,则为 value 的从零开始的索引位置;如果未找到,则为 -1。
        Console.WriteLine(str.LastIndexOf(\'-\'));//12
        Console.WriteLine(str.Contains(\'-\'));//true

截取字符串

        Console.WriteLine(str.Substring(1));//hello,world-,从位置1开始到最后的全部截取出来
        Console.WriteLine(str.Substring(1, 5));//hello,第一个为开始位置,第二个为长度

移除字符串

        Console.WriteLine(str.Remove(1));//输出-,从位置1开始到最后的全部删除
        Console.WriteLine(str.Remove(0, 6));//输出,world-
        //第一个为开始位置,第二个为长度

字符串开头与指定的字符串匹配

        Console.WriteLine(str.StartsWith(\"hello\"));//false
        Console.WriteLine(str.StartsWith(\"-HELLO\", true, null));//true  忽略大小写,使用当前区域

字符串的大小写转换ToLower转小写,ToUpper转大写

        Console.WriteLine(str.ToLower());
        Console.WriteLine(str.ToUpper());//-HELLO,WORLD-

使字符串达到指定长度实现对齐

        Console.WriteLine(str.PadLeft(15,\'-\'));//在字符左侧填充字符来达到指定的总长度,从而实现右对齐
        Console.WriteLine(str.PadRight(15, \'-\'));//在字符右侧填充字符来达到指定的总长度,从而实现左对齐

stringbuilder的使用方法

首先new一个新的StringBuilder

        StringBuilder sb = new StringBuilder(\"Hello World!\");

输出长度

        Console.WriteLine(sb.Length);//12

sb.Capacity = 10;
设置最大长度为10
sb.EnsureCapacity(10);
设置要确保的最小容量

        //向StringBuilder增加新元素
        Console.WriteLine(sb.Append(\"123\"));
        StringBuilder sb1 = new StringBuilder(\"Hello World!\");
        Console.WriteLine(sb1.AppendFormat(\"第一个{0},第二个{1}\",\"Beijing\",2008));//注意第一个是从0开始
        //向指定的索引位置插入字符串
        Console.WriteLine(sb.Insert(6,\"beautiful \"));
        //从指定的索引位置移除指定长度的字符
        Console.WriteLine(sb.Remove(5,10));
        //替换字符
        Console.WriteLine(sb.Replace(\"!\",\"*\"));
        //将StringBuilder转为String类型
        Console.WriteLine(sb.ToString());

输出结果为


stringbuilder.png