1)、字符串的不可变性
当你给一个字符串重新赋值之后,老值并没有销毁,而是重新开辟一块空间存储新值
当程序结束后,GC扫描整个内存,如果发现有的空间没有被指向,则立即把它销毁
2)、我们可以将字符串看做是只读char类型的数组
ToCharArray();将字符串转化为char数组
new string(char[] chs);能够将char数组char数组转化为字符串
public class Program
{
public static void Main()
{
string s = "CGW";
char[] ch = s.ToCharArray();
ch[0] = 'A';
s = new string(ch);//最后s为"AGW"
Console.ReadKey();
}
}
字符串提供的各种方法
1、Length:获取当前字符串中字符的个数
public class Program
{
public static void Main()
{
string s = "获取该字段的长度";
Console.WriteLine(s.Length);//输出为8
Console.ReadKey();
}
}
2、ToUpper():将字符串转换成大写形式;ToLower():将字符串转换为小写形式
public class Program
{
public static void Main()
{
string s = "c#";
Console.WriteLine(s.ToUpper());//转换成大写
Console.WriteLine(s.ToLower());//转换成小写
Console.ReadKey();
}
}
3、Equals(str,StringComparison.OrdinalIgnoreCase):比较两个字符串(忽略大小写)
public class Program
{
public static void Main()
{
string s = "c#";
string s1 = "C#";
Console.WriteLine(s.Equals(s1,StringComparison.OrdinalIgnoreCase));
//最后输出turn
Console.ReadKey();
}
}
4、Split();分割字符串,返回字符串类型的数组
string [] names = { "1" , "2" , "3" };
string strNames = string.Join("|", names);
Console.WriteLine(strNames);
//最后为1|2|3
Console.ReadKey();
5、Substring():截取字符串,在截取的时候包含要截取的位置
string s = "abcde";
//第一个参数从指定的位置截取,包含指定的位置,第二个参数截取的长度
s = s.Substring(1, 2);
//从指定的位置截取到末尾,包含指定的位置
s = s.Substring(0);
Console.WriteLine(s);
Console.ReadKey();
6、IndexOf():判断某个字符串在字符串中第一次出现的位置,如果没有返回-1;
LastIndexOf():判断某个字符串在字符串中最后一次出现的位置,如果没有返回-1
string s = "12341";
//1第一次出现的地方
int i = s.IndexOf("1");
//l最后一次出现的位置
int j = s.LastIndexOf("l");
Console.WriteLine(s);
Console.ReadKey();