C#字符串特点及其常用方法
//字符串特点
//引用类型 数据储存在堆空间 在栈空间中存储了该数据的引用地址
//值不可变 字符串重新赋值 旧值不销毁 而是开辟新空间
//字符串可以看成只读的char[]
//字符串常用方法
string s = "Far";
Console.WriteLine(s.ToUpper());//字符全大写
Console.WriteLine(s.ToLower());//字符全小写
string s2 = "zgy";
Console.WriteLine(s2.Equals(s));//比较是否相同
string s3 = "F a r";
foreach(string str in s3.Split(' '))//使用字符分割
{
Console.WriteLine(str);
}
Console.WriteLine(s.Substring(1));//从角标1开始截取到最后
Console.WriteLine(s.Substring(0,1));//从角标0开始截取1个字符
Console.WriteLine(s.IndexOf("F"));//查找子字符串在字符串中第一次出现的角标 从前向后查找
Console.WriteLine(s.LastIndexOf("Fa"));//查找子字符串在字符串中第一次出现的角标 从后向前查找
Console.WriteLine(s.StartsWith("F"));//判断以什么字符串开头
Console.WriteLine(s.EndsWith("ar"));//判断以什么字符串结尾
Console.WriteLine(s2.Replace("zgy", "Far"));//替换字符串
Console.WriteLine(s.Contains("ar"));//判断一个字符串中是否包含子串
string s4 = " F a r ";
Console.WriteLine("o" + s4.Trim() + "o");//去掉字符串开始前和结束后的所有空格
Console.WriteLine("o" + s4.TrimStart());//去掉字符串开始前的所有空格
Console.WriteLine(s4.TrimEnd() + "o");//去掉字符串结束后的所有空格
Console.WriteLine(string.IsNullOrEmpty(s));//判断字符串是否为null或者""
//字符串缺点
//当需要对一个字符串重复赋值时,内存中会产生大量垃圾数据信息
//当重复赋值频率很高时,执行效率就会降低
//StringBuilder 是一个类 引用类型 字符串的值可以改变 依赖using System.Text;
StringBuilder sb = new StringBuilder();//创建一个对象
sb.Append("Far");//追加数据 重载方法很多
sb.Append(0528);
sb.Append(true);
Console.WriteLine(sb.ToString());//转换成string
sb.Clear();//清空
Console.WriteLine(sb);
//效率测试
//Stopwatch 秒表计时器 依赖using System.Diagnostics;
Stopwatch sw = new Stopwatch();
sw.Start();//计时器开启
sw.Stop();//计时器结束
Console.WriteLine(sw.Elapsed);//计时器开启到结束的时长
//使用for循环测试 string 和StringBuilder的效率
sw.Start();
string stringTest = "";
for(int i = 0; i < 100000; i++)
{
stringTest += i;
}
sw.Stop();
Console.WriteLine(sw.Elapsed);//string时长
sw.Start();
StringBuilder sbTest = new StringBuilder();
for (int i = 0; i < 100000; i++)
{
sb.Append(i);
}
sw.Stop();
Console.WriteLine(sw.Elapsed);//sb时长
没有评论:
发表评论