C#中string和String的区别

Posted ReggieQiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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  

以上是关于C#中string和String的区别的主要内容,如果未能解决你的问题,请参考以下文章

C#中String和string有啥区别?

(49)C#里String.IsNullOrEmpty()和String.IsNullOrWhiteSpace()的区别

(49)C#里String.IsNullOrEmpty()和String.IsNullOrWhiteSpace()的区别

C#中的string[][]和string[,]有啥区别[重复]

C#中string和StringBuilder的区别

C# String与string的区别