C# 字符串 string 是一个引用类型, 声明一般有两种  

1 直接赋值 例:String str="123";

2.使用构造器赋值 例:String str=new String("123");

字符串属于不可变量,任何修改都会生成一个新的。当它声明后程序就会记忆它,下次使用时就不会再次划分内存,例:string s="123"; string s2=s1;

其实在内存中应该是只生成了一个内存空间。

string 的构造函数一共有以下几种

1. string (char c,int count); 生成数量为count的由c组成的字符串 例:string str=new string('c',2); 结果为同 string str="cc";

2.string(char[] c); 将字符数组转为字符串,例:string str=new string(new char[]{'1','2'});结果等同 string str="12";

3.string(char[] c,int start,int length); 将字符数组中部分元素拼成字符串 例:string str=new string(new char[]{'1','3','4'},0,2); 结果等同 string str="13";

4.一些其他的用法,比如用到了指针,这种常用,小编自己也没怎么用过,就暂不介绍了

在string类中有一个静态属性,string.Empty 即空字符串,表示不含任何字符,也不是null,它是一个常量,

大概介绍下空字符串和null的区别

1.空字符串是一个长度为0的字符串,null表示没有长度,string s=null; s.length 会抛出异常

2.空字符串可以调用字符串的所有方法,null只能调用部分

3.空字符串已经指向内存中的地址,null是没有指向的。

那么如何判断呢?

string.isNullorEmpty(str)

 

关于两个字符串的比较我们看下例

string a="123";

string b="1";

b+="23";

a==b 是成立的,表示值相同,object.referenceEquals(a,b) 是不同的,他们只是值相同,但不会指向同一实例

 

因字符串是包含任意字符文本的,所有其也包含转义序列,如:string str="\n"; 表示换行,等等...

有写字符是不需要转义的,需要以@开头,例:@”c:\windows“ 

posted on 2020-05-06 16:30  苗仔  阅读(89)  评论(0)    收藏  举报