(1)ToUpper()
作用:将字符转换成大写形式,仅对字母有效。返回值是转换后的字符串。
例如:name.ToUpper();
(2)ToLower()
作用:将字符转换成小写形式,仅对字母有效。返回值是转换后的字符串。
例如:name.ToUpper();
(3)Equals()
作用:比较两个字符串是否相同。相同返回true,不相同返回false。
例如:name.Equals(name2);
(4)Split()
作用:分割字符串。返回字符串类型的数组。
例如:name3.Split(m_char);//注意参数是字符数组!!!
(5)Substring
作用:截取字符串。返回截取后的子串。
使用:字符串变量.方法名(开始截取的位置);
字符串变量.方法名(开始截取的位置,截取多长);
例如:name.Substring(2); //从角标为 2 的位置,截取到最后;
name.Substring(2,2); //从角标为 2 的位置,截取 2 个字符;
(6)IndexOf()
作用:查找某个字符串在字符串中第一次出现的位置。
返回所在的索引位置值。如果没有找到,返回-1。
例如:name.IndexOf(“on”);
(7)LastIndexOf()
作用:查找某个字符串在字符串中最后一次出现的位置。
返回所在的索引位置值。如果没有找到,返回-1。
例如:name.IndexOf(“on”);
(8)StartsWith()
作用:判断是否以...字符串开始。如果是,返回true;如果不是,返回false。
演示:name.StartsWith(“Mo”);
(9)EndsWith()
作用:判断是否以...字符串结束。如果是,返回true;如果不是,返回false。
演示:name.EndsWith(“key”);
(10)Replace()
作用:将字符串中的某个字符串替换成一个新的字符串。返回新的字符串。
使用:字符串变量.方法名(旧字符串,新字符串);
演示:name.Replace(“Mon”, “CODE”);
(11)Contains()
string name = "Monkey";
Console.WriteLine("ToUpper:" + name.ToUpper());
Console.WriteLine("ToLower:" + name.ToLower());
string name_2 = "lkk";
Console.WriteLine("Equals:" + name.Equals(name_2));
string address = "中国|北京|海淀|上海";
char[] c = new char[] { '|' };
string[] ad = address.Split(c);
for (int i = 0; i < ad.Length; i++)
{
Console.WriteLine(ad[i]);
}
Console.WriteLine("Substring:" + name.Substring(2));
Console.WriteLine("Substring:" + name.Substring(2, 2));
Console.WriteLine("IndexOf:" + name.IndexOf("k"));
Console.WriteLine("LastIndexOf:" + name_2.LastIndexOf("k"));
Console.WriteLine("StartsWith:" + name.StartsWith("Mon"));
Console.WriteLine("EndsWith:" + name.EndsWith("key"));
Console.WriteLine("Replace:" + name.Replace("Mon", "lkk"));
Console.WriteLine("Contains:" + name.Contains("Mon"));
Console.ReadKey();
运行截图:
(12)Trim()
string webName = " B站 ";
Console.WriteLine("**" + webName + "**");
Console.WriteLine("**" + webName.Trim() + "**");
Console.WriteLine("**" + webName.TrimEnd() + "**");
Console.WriteLine("**" + webName.TrimStart() + "**");
string n = "";
Console.WriteLine(string.IsNullOrEmpty(n));
字符串的数据存储在堆,在栈中存储了数据的引用地址。
给一个字符串重新赋值,旧值并没有销毁,而是重新开辟一片空间来存储新值。旧值等待系统回收。
通俗一点的理解(网友要逗死我)就是:你老婆这个人还在世界上,但是你换了个老婆!
放个图理解一哈子:
通过下标即可访问对应位置的数组
也可以使用for循环遍历数组
为了解决字符串变量重复赋值会在内存中产生大量的垃圾数据信息,降低效率的问题。经过测试StringBuilder比String的追加效率高百倍左右!
出现了一个新的类叫StringBuilder:
StringBuilder 类型的“字符串变量”,一直操作同一块内存空间,不会产生 垃圾数据,且执行效率远远高于 string 类型的字符串变量。
1、创建StringBuilder类型的字符串变量
StringBuilder sb = new StringBuilder();
2、Append()方法追加数据
sb.Append("shengdai");
sb.Append(123456);
sb.Append(true);
Console.WriteLine(sb.ToString());//shengdai123456True
3、clear()清空
sb.Clear()