黑马程序员_笔记七

来源:互联网 发布:乌鲁木齐 网络订花 编辑:程序博客网 时间:2024/06/05 08:12

 ------- Windows Phone 7手机开发、.Net培训、期待与您交流! ------- 

一:string类(string其实是一个类)
string其实是char类型的数组,并且为只读的。
例:char []cha="abc";
Console.WriteLine("cha[0]的值是{0}",cha[0]);
C#中的字符串有一个重要的特性:不可变性,字符串一旦声明就不再可以改变,所以只能通过索引来读取指定位置的char,不能对指定位置的char进行修改。
如果要对char进行修改,方法如下:
(1)首先使用string.ToCharArray();方法来得到string字符串的字符数组。
(2)对得到的字符数组进行修改,修改完成后,调用new string(char[])这个构造函数来创建char数组的字符串。
例子:
string str = "abc";
char[] cha = str.ToCharArray();
for (int i = 0; i < cha.Length/2 ; i++)
{
    char a=cha[i];
    cha[i]=cha[cha.Length-1-i];
    cha[cha.Length-i-1]=a;
 }
str = new string(cha);
Console.WriteLine(str);
Console.ReadKey();
输出结果是:cba
如何对两个字符串进行比较并且不区分大小写,方法如下:
(1)利用string.ToUpper()(转大写)或者string.ToLower()(转小写)两种方法。
例子:
string str1="asDf";
string str2="ASdF";
string str3=str1.ToUpper();
string str4=str2.ToUpper();
if(str3==str4)
{
Console.WriteLine("str1和str2是相等的");
}
输出结果是:str1和str2是相等的
(2)使用string.Equals(string str,StringComparison.OrdinalIgnoreCase)这个方法,其中的第二个参数表示比较方法,.OrdinalIgnoreCase表示忽略大小写的比较。
例子:
string str1="aBcD";
string str2="AbCd";
if(str1.Equals(str2,StringComparison.OrdinalIgnoreCase))
{
Console.WriteLine("str1和str2是相等的");
}
输出结果为:str1和str2是相等的。
string.Split()方法:
(1)string []str=string.Split('分隔符');
意义是将一个字符串以某一个分隔符分割,得到一个字符串类型的数组。
例子:string str="abc|cba|bac";
string []str1=str.Split('|');
for(int i=0;i<str1.Length;i++)
{
Console.WriteLine(str1[i]);
}
输出结果为:
abc
cba
bac
(2)string []str=string.Split(char []arr);
意义是将一个字符串按照多个分隔符进行分割并将分割后的值赋给一个字符串类型的数组str。
例子:string str="abc|cab|adf/feg/dgg";
string []str1=str.Split('|','/');
for(int i=0;i<str1.Length;i++)
{
Console.WriteLine(str1[i]);
}
输出结果为:
abc
cab
adf
feg
dgg
这里的.Split()方法中使用了多个分隔符,但是要注意分隔符是字符类型的因此要用单引号引起来,另外,多个分隔符之间要用逗号隔开。
(3)string.Split(char[],StringSplitOptions);
这里有两个参数,char[]表示的是分隔符,StringSplitOptions有两个取值,分别为None和RemoveEmpetyEntries,None表示分割后的字符串中可以包含空字符串元素,RemoveEmptyEntries表示分割后的字符串中不可以包含空字符串元素。
例子:
string str = "abc  cba bac";
char[] cha = { ' ' };
string[] str1 = str.Split(cha, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < str1.Length; i++)
{
    Console.WriteLine(str1[i]);
}
Console.ReadKey();
加上StringSplitOptions.RemoveEmptyEntries这个参数和不加是完全不同的两个结果,不加的输出结果是:
abc

cba
bac
加上这个参数后的输出结果是
abc
cba
bac
这个参数将分割后的数组中的空数组元素给删除掉了。
注意:使用这种方法分割字符串时,因为它有两个参数,所以就不能再直接写入多个分隔符,解决办法是先将这些分隔符组成一个数组赋值给一个char类型的书组变量,然后再将这个变量作为参数进行处理。
string类的其它方法:
(1)str1.Replace(char1/string1,char2/string2);
作用是将字符串str1中的char1/string1用char2/string2代替,并返回代替后的字符串。
(2)str1.SubString(startplace);
作用是从截取一段从字符串str1的startplace位置开始到str1末尾的字符串,返回值是截取的字符串。
(3)str1.SubString(startplace,length);
作用是在字符串str1中截取一段从startplace位置开始,长度为length的字符串,返回值是截取的字符串。
(4)str1.Contains(string value);
这个方法的返回值是bool类型的,作用是判断字符串str1中是否包含value这个字符串。
(5)str1.IndexOf(string value);
返回值是int类型的,作用是得到字符串value在字符串str1中第一次出现的起始位置。

------- Windows Phone 7手机开发、.Net培训、期待与您交流! ------   详细请查看:http://edu.csdn.net/heima  

原创粉丝点击