C#操作字符串
admin
2023-08-02 15:51:13
0

整理下操作字符串相关的属性和方法,主要是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

相关内容

热门资讯

500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
python清除字符串里非数字... 本文实例讲述了python清除字符串里非数字字符的方法。分享给大家供大家参考。具体如下: impor...