------- Windows Phone 7手机开发、.Net培训、期待与您交流! -------
string可以看做是char的只读数组。char c=s[1];。例子:遍历输出string中的每个元素。
C#中字符串有一个重要的特性:不可变性,字符串一旦声明就不再可以改变。所以只能通过索引来读取指定位置的char,不能对指定位置的char进行修改。
如果要对char进行修改,那么就必须创建一个新的字符串,用s.ToCharArray()方法得到字符串的char数组,
对数组进行修改后,调用new string(char[])这个构造函数(暂时不用细研究)来创建char数组的字符串。
一旦字符串被创建,那么char数组的修改也不会造成字符串的变化。例子:将字符串中的A替换为a。
字符串是Unicode字符的有序集合。
String对象是System.Char对象的有序集合,可用索引器来访问字符。
String类定义的变量是一个引用类型,可赋值为null。
要区分变量名和变量指向 的值的区别。程序中可以有很多字符串,然后由字符串变量指向他们,
变量可以指向其他的字符串,但是字符串本身没有变化。字符串不可变性指的是内存中的字符串不可变,而不是变量不变。
字符串处理方法:
一. 比较字符串
主要方法有:Compare、CompareTo、Equals
1. Compare
如:String.Compare(str1,str2,true);
按两字符串在英文字典中的位置比较大小,返回值为int型:
str1大于str2,返回1;
str1等于str2,返回0;
str1小于str2,返回-1。
第三个参数为bool型,为true表忽略大小写。
2. CompareTo
如:str1.CompareTo(str2);
3. Equals
比较两个字符串是否相同,返回bool型,相同则为true,如:
str1.Equals(str2); 或
String.Equals(str1,str2);
三.格式化字符串
如:string str=String.Format(“{0} are {1}!!!”,strA,strB);
第一个参数指字符串要格式化的形式,语法:{索引[,对齐方式][,格式化字符串]}。
四.截取字符串
如:str2=str1.SubString(1,4);
指取4个长度的str1从索引1开始的子字符串。
第一个参数指子符串起始位置索引。
第二个参数指子字符串中的字符数长度,省略则取到最后。
IndexOf、LastIndexOf方法可获取与之匹配的第一个或最后一个字符的索引,经常搭配使用,如int index=String.IndexOf(‘\\’);
五.分割字符串
如:String[] splitStrings=strA.Split({‘-’,’*’,’#’});
返回值为一string类型数组,参数为一char类型数组,包含分隔符。
string url = "http://asdfsfd asdf asdfsdf"; string[] sss = GetString(url," "); foreach(string str in sss) { Response.Write(str.ToString() +" "); } private string[] GetString(string str,string cutStr) { char[] cutChar = cutStr.ToCharArray(); string[] sArray = str.Split(cutChar); return sArray; }
六.插入和填充字符串
插入字符串,如:str2=str1.Insert(4,”hello”);
表示在str1的索引为4的位置处插入”hello”。
第一个参数指要插入字符串的位置索引值。
第二个参数指要插入的字符串。
若要在尾部插入字符串,可用Length属性设置要插入的索引位置。
填充字符串,如:String strA=strB.PadLeft(7,’*’);
PadLeft表在字符串的左侧进行字符填充,而PadRight表在右侧。
第一个参数表填充后的字符长度。
第二个参数表要填充的字符。
七.删除字符串
如:String str1=str2.Remove(3,5);
表删除str2的从索引3开始的5个字符。
第一个参数表起始索引。
第二个参数表要删除的字符长度,若省略则删除到末尾。
八.复制字符串
Copy方法,如:String strA=String.Copy(strB);
把strB复制到strA中。
CopyTo方法,如:
Char[] cTest=new Char[];
strA.CopyTo(1,cTest,0,4);
表将字符串strA的从索引1开始的字符复制4个,保存到字符数组cTest的从索引0开始的位置中。
第一个参数表需复制字符串在源字符串在的索引。
第二个参数表存放字符串的目标字符数组。
第三个参数表目标字符数组的开始存放位置。
第四个参数表要复制的字符个数。
九.替换字符串
如:str2=str1.Replace(‘a’,’b’); 或
str2=str1.Replace(“abc”,”hello”);
第一个参数指待替换的字符或字符串,第二个参数指替换后的新字符或字符串。