七.字符串、String类和StringBuilder类
String类
每次改变string对象的值时,会产生一个新的对象来保存数值。访问时,只是更变了对string对象的引用。String类在System空间下。
常用的String类方法
Split方法
stringdata = "Mike,McMillans,3000 W.Scenic,NorthLittle Rock,AR,72118";
string[]sdata;
char[]delimiter = new char[]{ ',' };
///data.Length:Split返回的数组内的元素数量
sdata = data.Split(delimiter,data.Length);///[0]Mike[1]McMillans[2]3000W.Scenic[3]North Little Rock[4]AR[5]72118
sdata = data.Split(delimiter, 2);///[0]Mike[1]McMillans,3000W.Scenic,North Little Rock,AR,72118
Join方法
stringjoined= String.Join(",",sdata);
Format方法
string s = String.Format("{0} is value", "a");
比较字符串的方法
Unicode值
每个字符都有一个Unicode值。两个字符串的比较实际就是比较它们的数字编码。
intcharcode = (int)' '; ///32
Equals方法
boolisEaqual1 = data.Equals(joined);
CompareTo方法
intEaqualResult1 = data.CompareTo(joined);///Unicode值低于则-1,相等则0,高于则1
Compare(静态)方法
intEaqualResult2 = String.Compare(data,joined);///Unicode值低于则-1,相等则0,高于则1
StartsWith方法
以字符串参数作为当前字符串的开始
boolisrighthead = data.StartsWith("Mi");
EndsWith方法
以字符串参数作为当前字符串的结束
boolisrightend = data.EndsWith("ke");
处理字符串的方法
Insert方法
返回一个指定位置插入字符串后的新字符串
Remove方法
返回一个从指定位置起删除指定长度字符串的新字符串
Replace方法
返回一个新字符替代旧字符后的新字符串
PadLeft方法
返回一个指定长度的字符串,参数字符串进行右对齐排列
Console.WriteLine(data.PadLeft(60));
/// Mike,McMillans,3000 W.Scenic,North Little Rock,AR,72118
Console.WriteLine(data.PadLeft(10));
///Mike,McMillans,3000 W.Scenic,North Little Rock,AR,72118
PadRight方法
返回一个指定长度的字符串,参数字符串进行左对齐排列
Console.WriteLine(data.PadRight(60));
///Mike,McMillans,3000 W.Scenic,North LittleRock,AR,72118
Concat(静态)方法
返回一个字符串参数组串联后的新字符串
Console.WriteLine(String.Concat(data,"&",joined));
ToLower方法
返回一个小写形式的新字符串
Console.WriteLine(data.ToLower());
ToUpper方法
返回一个大写形式的新字符串
Console.WriteLine(data.ToUpper());
Trim、TrimEnd、TrimStart方法
返回一个去除空格、换行、制表符等其他格式字符后的新字符串
stringstr = " \t1 2 3 \r";
Console.WriteLine(";{0};", str.Trim());///;1 2 3;
Console.WriteLine(";{0};", str.TrimEnd());///; 1 2 3;
Console.WriteLine(";{0};", str.TrimStart());///;1 2 3
///;
StringBuilder类
对StringBuilder对象进行改变时,改变的是原始对象,而不是对副本进行操作。StringBuilder类在System.Text空间下。对复杂的长字符串(大约超过1000个字符以上)进行操作时,StringBuilder会产生更好的性能。
构造器
StringBuilderstbuff1 =new StringBuilder();///默认16个字符的容量
StringBuilderstbuff2 =new StringBuilder(25);///指定25个字符的容量
StringBuilderstbuff3 =new StringBuilder("Hello World");///传入字符串。每次超出StringBuilder容量时,容量都会增加16个字符。
获取、设置关于StringBuilder对象的信息
Length、Capacity、MaxCapacity属性
Length获取或者设置实例的字符数。
Capacity获取实例的当前容量
MaxCapacity获取实例中允许的最大字符数(随对象添加字符而自动添加)
Console.WriteLine("{0}→Length字符数:{1}", stbuff3, stbuff3.Length);///Hello World→Length字符数:11
Console.WriteLine("{0}→Capacity容量:{1}", stbuff3, stbuff3.Capacity);///Hello World→Capacity容量:16
Console.WriteLine("{0}→MaxCapacity允许最大字符数:{1}",stbuff3, stbuff3.MaxCapacity);///Hello World→MaxCapacity允许最大字符数:2147483647
stbuff3.Length = 8;
Console.WriteLine("{0}→Length字符数:{1}", stbuff3, stbuff3.Length);///Hello Wo→Length字符数:8
Console.WriteLine("{0}→Capacity容量:{1}", stbuff3, stbuff3.Capacity);///Hello Wo→Capacity容量:16
//stbuff3.Length= 15;
//Console.WriteLine("{0}→Length字符数:{1}", stbuff3,stbuff3.Length);///Hello Wo
EnsureCapacity方法
设置实例的最小容量
stbuff3.EnsureCapacity(30);
Console.WriteLine("{0}→Length字符数:{1}", stbuff3, stbuff3.Length);///Hello Wo→Length字符数:8
Console.WriteLine("{0}→Capacity容量:{1}", stbuff3, stbuff3.Capacity);///Hello Wo→Capacity容量:30
Console.WriteLine("{0}→[3]:{1}", stbuff3, stbuff3[3]);///Hello Wo→[3]:l
Chars属性
返回实例中指定位置上的字符
Console.WriteLine("{0}→[3]:{1}", stbuff3, stbuff3[3]);///Hello Wo→[3]:l
修改StringBuilder对象
Append方法
实例对象的末尾处添加字符(串)
StringBuilderstbuff5 =new StringBuilder("Hello World");
stbuff5.Append('.');
Console.WriteLine(stbuff5);///Hello World.
stbuff5.Append("Boys");
Console.WriteLine(stbuff5);///Hello World.Boys
stbuff5.Append(9);
Console.WriteLine(stbuff5);///Hello World.Boys9
stbuff5.Append((char)98);
Console.WriteLine(stbuff5);///Hello World.Boys9b
AppendFormat方法
对实例对象的末尾处添加指定格式的字符串
stbuff5.AppendFormat("\nAge:{000}.", 23);
Console.WriteLine(stbuff5);///Hello World.Boys9b
///Age:23.
Insert方法
对实例对象,进行,指定位置、指定重复插入次数、插入指定字符(串)的操作。完成插入操作后对此实例的引用
stbuff5 = newStringBuilder("HelloWorld");
stbuff5.Insert(0, '!');
Console.WriteLine(stbuff5);///!Hello World
Console.WriteLine(stbuff5.Insert(0,"here ", 3));///here here here !HelloWorld
Remove方法
对实例对象,指定位置起移出掉指定长度的字符
stbuff5 = newStringBuilder("HelloWorld");
stbuff5.Remove(8,2);
Console.WriteLine(stbuff5);///Hello Wod
Replace方法
对实例对象,替换旧字符串变为新字符串。
stbuff5 = newStringBuilder("HelloWorld");
stbuff5.Replace("World","Man");
Console.WriteLine(stbuff5);///Hello Man
ToString方法
返回当前StringBuilder实例的一个字符串实例。
stbuff5 = newStringBuilder("HelloWorld");
Console.WriteLine(stbuff5.ToString());///Hello Man
Console.WriteLine(stbuff5.ToString(3,7));///lo Worl