String和string的区别
前两天有个朋友问我一个问题:“C#是区分大小的,那么大写的String和小写的string有什么区别?”,我当时只是简单的说了句:“大写的String代表的是类,string代表的则是变量类型”,可是回去自己想了想还是不对,网上查了查资料,在此和大家分享一下。
从位置讲:
1.String是.NET Framework里面的String,小写的string是C#语言中的string
2.如果把using System;删掉,没有大写的String了,System是.NET Framework类库中的一个函数名.
从性质讲:
- 1. string是关键字,String是类,string不能作为类、结构、枚举、字段、变量、方法、属性的名称
- 2. 用C#编写代码的情况下尽量使用小写的string,比较符合规范,如果在追求效率的情况下可以使用大写的String,因为最终通过编译后,小写的string会变成大写的String,可以给编译减少负荷,从而运行效率提高。
- 3. string 类型表示 Unicode 字符的字符串,string 是 .NET Framework 中的 String 的别名,对字符串相等性的测试更为直观
string详解:
string s = string.Empty:一个指向空字符串的字符串变量, s不占用存储空间.s变量可以使用,比如s.Length
string s = "";一个指向"\0"的空字符串, 占用一个字节存储空间,因为转义符\0代表字符串结束.s变量可以使用,比如s.Length
string s = null; 一个指不向任何一个存储空间的变量,s不可以使用
单个字符分割:
string s="abcdeabcdeabcde";
string[] sArray=s.Split('c');
foreach(string i in sArray)
Console.WriteLine(i.ToString());
输出下面的结果:
ab
deab
deab
de
多个字符分割:
string s="abcdeabcdeabcde
string[] sArray1=s.Split(new char[3]{'c','d','e'});
foreach(string i in sArray1)
Console.WriteLine(i.ToString());
可以输出下面的结果:
ab
ab
ab
多个字符分割(正则表达式):
string content="agcsmallmacsmallgggsmallytx";
string[]resultString=Regex.Split(content,"small",RegexOptions.IgnoreCase)
foreach(string i in resultString)
Console.WriteLine(i.ToString());
输出下面的结果:agc
mac
ggg
ytx