一、string的学习
string是System.String的别名
sting s="www.com";//使用string类型存储字符串类型int length=s.Length;//获取字符串的长度
//1 字符串比较可以使用"=="
if(s=="xxx")
{
Console.Write("相同");
}
else
{
Console.Write("不相同");
}
//2 使用“+”链接两个字符串
s="http://"+s;
Console.Write(s);
//3 可以使用索引找到某个字符
char ch=s[3];
Console.Write(ch);
//4 遍历查找所有字符
for(int i=0;i<s.Length;i++)
{
Console.WriteLine(s[i]);
}
//5比较方法的使用
int res= s.CompareTo("lili")//当两个字符串相等返回0 当s 的字母表中的排序靠前时,返回-1,靠后返回1
if(res==0)//相等
{}
else if(res>0)//大于 返回1
{}
else//小于 返回-1
{}
//6 替换指定的字符或者字符串,换成另一个字符或者字符串
s.Replace('.','_');
二、StringBuilder的学习
//1不能直接复制,必须new 一个
StringBuilder sb=new StringBuilder("ww");//利用
//2初始化一个空的stringBuilder对象 占有20个字符的大小
StringBuilder sb=new StringBuilder(20);
//3初始化一个的stringBuilder对象 占有120个字符的大小。如果字符串小于该内存时,之后还可以再添加字符. 它里面的内容可以变换 但是string就不可以
StringBuilder sb=new StringBuilder("www",120);
//4两个字符串的链接
sb.Append("/xxx.html");//可以将在字符串添加到www的后面 sb="www/xxx.html"
sb.Insert(0,"http://");//指定插入位置,这个位置之后的所有数据都会向后移动
sb.Remove(0,3);//
sb.Replace(".","");
sb.Replace('.','_');
sb.ToString()//它是把当前的StringBuilder中存储的字符串,提取成一个不可变的字符串
string s="www";//声明内存a,存储www数据
s+="/xxx.html";//这个是新创建一块内存b,然后将内存a中存有www的数据复制到b内存中,
这样引用指向新的内存b,内存a不需要了,就回收掉了.改变了引用地址;
三、StringBuilder和String的区别
前者是声明时会声明一段内存,当该字符串改变时,它会自动在该内存中,指向相应的添加删除操作。不会改变指向内存的地址。
但是后者是声明一段内存a,当字符串改变时(添加 删除),会重新生成一段内存b,当之前的存储内容复制到该新的内存b当中,改变指向内存b的地址,
之前的内存a将会被回收掉。
当我们需要对一个字符串进行频繁的删除添加操作的时候,使用StringBuilder的效率更高。