string字符串的常用方法

string

  • 不可变性:不管对字符串做什么操作,都会在内存中产生一块新的实例。
  • 字符串常量的“驻留池”。
  • 可以将一个字符串看作是char类型的只读数组。
  • GC(Garbage Collection):每隔一段时间,会扫描整个内存,若发现有的空间没有被指向,则立即把它销毁。

string的常用方法和示例

  • 静态方法
isNullOrEmpty():判断此字符串是否为null或者为Empty。null没有分配空间,Empty是分配了空间
            string s = "";
            if (string.isnullorempty(s))
            {
                console.writeline("是");
            }
            else
            {
                console.writeline("不是");
            }
            //输出:是 
Join():在字符串之间加入特定字符
            string res1 = string.Join("|", "金1", "金2", "金3");
            Console.WriteLine(res1);
            //输出:金1|金2|金3
  • 普通方法
将字符串转为char数组
            string str = "abcdefg";
            char[] chs = str.ToCharArray();
            foreach (char item in chs)
            {
                Console.WriteLine(item);
            }
            //输出:
            //a
            //b
            //c
            //d
            //e
            //f
            //g
            
char数组转为字符串
            chs[2] = 'z';
            str = new string(chs);
            Console.WriteLine(str);
            //输出:abzdefg

转大写
            string str = "abcDEE";
            Console.WriteLine(str.ToUpper());
            //输出:ABCDEE
            
转小写
            Console.WriteLine(str.ToLower());
            //输出:abcdee
            
== 比较的值, Equals 比较的是引用;
在string中均比较值

忽略大小写比较是否相等
            string s1 = "aBc";
            string s2 = "AbC";
            if (s1.Equals(s2, StringComparison.OrdinalIgnoreCase))
            {
                Console.WriteLine("相等");
            }
            else
            {
                Console.WriteLine("不相等");
            }
            //输出:相等

找某个字符在字符串中的位置
            string str = "abdsads";
            int index0 = str.IndexOf("a");
            int index1 = str.IndexOf("a", index0 + 1);
            int index2 = str.LastIndexOf("a");
            Console.WriteLine(index0);
            //输出:0
            Console.WriteLine(index1);
            //输出:4
            Console.WriteLine(index2);
            //输出:4

从指定的位置开始往后面截取字符串
            string str = "abcd,efg";
            string strNew = str.Substring(1);
            string strNew1 = str.Substring(1, 2);
            Console.WriteLine(strNew);
            //输出:bcd,efg
            Console.WriteLine(strNew1);
            //输出:bc
            int index = str.IndexOf(",");
            string strNew2 = str.Substring(index + 1);
            Console.WriteLine(strNew2);
            //输出:efg

部分字符剔除
            string str = "a  _b  ,, c, MM";
            string[] strNew = str.Split(new char[] { ' ', '_', ',' }, StringSplitOptions.RemoveEmptyEntries);
            foreach (string item in strNew)
            {
                Console.WriteLine(item);
            }
            //输出:
            //a
            //b
            //c
            //MM
            
字符串转char类型数组 ToCharArray();
字符串转string类型数组 Split();


去除空白字符 Trim() TrimEnd() TrimStart()
            string s = "  ,,_ 占 ,_,  山  _,,  ";
            //去除前面和后面,中间不去除
            Console.WriteLine(s.Trim());
            //输出:,,_ 占 ,_,  山  _,,

            string[] names = { "金1", "金2", "金3" };
            string res = string.Empty;
            for (int i = 0; i < names.Length - 1; i++)
            {
                res += names[i] + "|";
            }
            Console.WriteLine(res + names[names.Length - 1]);
            //输出:金1|金2|金3
判断contents中是否包含敏感词            
            Console.WriteLine("请输入你要回复的内容");
            string contents = Console.ReadLine();
            if (contents.Contains("0"))
            {
                contents = contents.Replace("0", "*");
            }
            Console.WriteLine(contents);
            //输入:123001;输出:123**1
原文地址:https://www.cnblogs.com/ChaoJieLiu/p/11908523.html