----------------- ------------------Windows Phone 7手机开发、.Net培训期待与您交流! ----------------------
String基础学习
1.c#中的字符串长度str.lengthjJ就是字符的个数,不必算‘\0’,与c语言中不同。
2.c#中字符串有一个重要特性:不可变性,字符串一旦声明就不可以再改变,所以只能通过索引来读取指定位置的char,不能对指定位置的char进行修改,string可以看做是char的只读数组。如果要对字符串中的字符进行修改,那么就必须创建 一个新的字符串,用str.ToArray()方法得到字符串的char数组,对数组进行修改后,调用new String(char[])这个构造函数来创建char数组的字符串,一旦字符串被创建那么char数组的修改也不会造成字符串的变化。
3.在字符串中,要区分变量名和变量指向的值的区别。程序中可以 有很多字符串,然后由字符串变量指向他们,变量可以指向其他的字符串,但是字符串本身没有变化,字符串的不可变性是指内存中的字符串不可变,而不是变量不变。
例:string str=”hello world!”;
str=”abc”;
hello world!在内存中还是没有改变,只是str指向了”abc”
4.字符串的连接:+,两边只要有一个是字符串类型,另一个也会被自动转换成字符串类型,一切类型都可以调用.ToString()方法转换成字符串;
5.String类中常用的方法:
ToLower();得到字符串的小写形式;
ToUpper();得到字符串的大写形式;
Trim();去掉字符串两端的空白;
字符串是不可变的,所以这些方法都不会直接改变字符串的内容,而是吧修改后的字符串的值通过方法返回值的形式返回。
例:s.ToLower();s内的内容不变;
S=s.ToLower();s内的内容变为小写;
Equals()方法返回值为bool值,相同时则返回true,否则为false;参数为要与实例想比较的值,Equals()方法默认参数为一个得区分大小写的方法,Equals(string s,StringComparison.OrdinalIgnoreCase)比较时不区分大小写;
Split(Params char[] separator);将字符串按照指定的分隔符分隔为字符串数组;方法的返回值是一个字符串数组,参数是一个可变的char类型数组,实参既可以是char数组也可以是多个char类型的元素(用于分隔字符串,char数组中的元素是分隔的方式)
例:string str=”how are you?Fine,Thank you!”;
string[] words=str.Split(‘ ’,’?’,’!’,’,’);
foreach(string word in words)
{
Console.WriteLine(word);
}
其中分隔后的字符串中不包含指定分隔符;
Spit(char[] separator,stringSplitOptions options)将字符串按照指点的char分隔符分隔为字符串数组(options取RemoveEntries的时候移除结果中的空白字符串);
string.Replace()替换;将第一个参数中的字符替换成为第二个参数中的字符,这个方法也是只将替换的值返回,并没有将原字符串替换改变。
string.Substring(int startindex),从字符串中截取一个子字符串;从指定下标的字符开始到最后,从0开始;string.Substring(int a,int b),从指定位置(参数1)截取参数2个长度。
string.Contains(string value) 返回值为bool,检测实例对象中是否包含了参数中的字符串,包含返回true,否则返回false,此方法一般用于过滤关键字。
StartsWith()是否已参数中的字符串开始,返回值是bool值;
EndWith()是否以参数中的字符串结尾,返回值是bool值;
IndexOf()判断参数中的子字符串第一个字符在原字符串中第一次出现的位置,返回值为整形,如不存在字符串,返回值为-1;
读取文件:string[] lines=System.IO.File.ReadAllLines(@”文件的路径”,Encoding.Default);
----------------------------------------------------Windows Phone 7手机开发、.Net培训期待与您交流! ------------------