您的位置:首页 - 教程 - C# - 正文
C#中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 s1 = string.Empty;
Console.WriteLine(s1.Length); // 输出值为0

string s1 = string.Empty;一个指向空字符串的字符串变量,s1不占用存储空间,s1变量可以使用

 

string s2 = string.Empty;
Console.WriteLine(s2.Length); // 输出值为0

string s2 = "";一个指向"\0"的空字符串,s2占用一个字节存储空间,因为转义符\0代表字符串结束,s2变量可以使用

 

string s3 = null;
Console.WriteLine(s3.Length); // 引发了类型“System.NullReferenceException”的异常(也就是空引用)

string s3 = "";一个不指向任何存储空间的变量,s3变量不可以使用

 

单个字符分割:

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  

评论: