1.字符串的不可变性
using System;
public class Program
{
public static void Main()
{
string str1 = "name";
string str2 = "name";
string str3 = "age";
Console.WriteLine(str1.GetHashCode()); //62725243
Console.WriteLine(str2.GetHashCode()); //62725243
str3 = "bbb";
Console.WriteLine(str3.GetHashCode()); //2103075710
Console.WriteLine(str3[2]);//b
//1.将字符串转换成char类型的数组,用ToCharArray()方法
char[] st = str3.ToCharArray();
//2.将st【2】变更为'h'
st[2]='h';
Console.WriteLine(st[2]);//h
//3将字符数组转换成字符串
str3 = new string(st);
//4.打印验证----以上是垃圾代码,可以直接给str3赋值bbh
Console.WriteLine(str3);//bbh
Console.WriteLine("--------------");
}
}
2.可以将string类型,看做一个char类型的一个数组。
既然可以将string看做是一个str类型的只读数组,可以通过下标去访问字符串中的某一个元素。
string str = “abcdefg”;
3. StringBuilder 类,在using System.Text命名空间中
using System;
using System.Diagnostics;
using System.Text;
public class Program
{
public static void Main()
{
string str = null;
Stopwatch sw = new Stopwatch();//创建了一个计时器
sw.Start();//开始计时
for(int i =0;i<10000;i++)
{
str+=i;
}
Console.WriteLine("string时间,不住的开立空间");
sw.Stop();//结束计时
Console.WriteLine(sw.Elapsed);//获取开始-到-结束运行时间
StringBuilder sb = new StringBuilder();
Stopwatch sw1 = new Stopwatch();
sw1.Start();
for(int i =0;i<100000;i++)
{
sb.Append(i);
}
Console.WriteLine("StringBuilder时间,用的是一块空间...");
sw1.Stop();//结束计时
Console.WriteLine(sw1.Elapsed);//获取开始-到-结束运行时间
}
}
运行结果:
string时间
00:00:00.0804217
StringBuilder时间,用的是一块空间...
00:00:00.0131502
4.string类内置的方法