---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
StringBuilder类:
概念:当要进行大规模的字符串替换和调整操作时,使用String类来操作将严重影响性能,这时就可以用System.Text.StringBuilder类,但其并没有功能强大,只是提供基本的替换、添加和删除字符串中的文本功能,他的工作效率非常高;其主要的两个属性:Length和Capacity ,分别表示字符串的时间长度和字符串占据的内存空间长度。另外还有一个属性(MaxCapacity)来限定对象使用的最大容量常用的方法:
1)Append() 给当前字符串追加字符串
2)AppendFormt() 添加特定格式的字符串
3)Insert() 插入一个子字符串
4)Remove() 从当前字符串删除字符
5)Replace() 替换字符串中指定的字符
6)ToString() 将实例转换为String对象
代码:
//实例并初始化
StringBuilder strSB = new StringBuilder("初始化时候的值",50);
Console.WriteLine(strSB.Append(" 插入值 "));//初始化时候的值 插入值
Console.WriteLine(strSB.AppendFormat("{0} {1:x5}", "十六进制值:", 123));//初始化时候的值 插入值 十六进制值:0007b
Console.WriteLine(strSB.Insert(0, "插入前面的值 ")); //插入前面的值 初始化时候的值 插入值 十六进制值:0007b
Console.WriteLine(strSB.AppendLine(" 追加的值"));//插入前面的值 初始化时候的值 插入值 十六进制值:0007b 追加的值
Console.WriteLine(strSB.Capacity);//字符串占据内存为50的长度
Console.WriteLine(strSB.MaxCapacity); //最大容量:2147483647
Console.WriteLine(strSB.Length);//长度为:38
//结果: 转换为字符串:插入前面的值 初始化时候的值 插入值 十六进制值:0007b 追加的值(没有转换的话,编译会提示无法隐式转换成string)
string strSb = "转换为字符串:" + strSB.ToString();
Console.WriteLine(strSb);
Console.WriteLine(strSB.Replace(strSB.ToString(), "替换后的字符串")); //替换后的字符串
Console.ReadKey();
System.String类的常用方法:
1) 连接字符串 表示将两个或多个字符串连接在一起,以创建新的字符串;常用的方法:
1.使用Concat()方法 public static string Concat(params string[] values);
2.使用运算符+
代码:
string connectionString1 = "abcd";
string connectionString2 = "ABCD";
//使用"+"运算符
string constr3 = connectionString1 + connectionString2;
Console.WriteLine(constr3);
//也可以使用Concat()方法 concat(合并多个字符串)
string constr4 = string.Concat(connectionString1, connectionString2);
Console.WriteLine(constr4);
Console.ReadKey();
2)Jion()方法 public static string Join(string separator,string[] values);
其中:values用于指定所要连接的多个字符串 separator为指定的分隔号
代码:
string[] joinStr1 = { "我是中国人", "我爱我的祖国", "希望祖国强大!" };
string joinStr = string.Join("-", joinStr1);
Console.WriteLine(joinStr);
Console.ReadKey();
//结果:我是中国人-我爱我的祖国-希望祖国强大!
3)求字符串子串
String类的Substring()方法
代码:
//定义一个字符串
string subStr1 = "寻找字符串子串";
//索引从第三个开始,长度为3的子字符串! 结果:字符串
string strSon = subStr1.Substring(2, 3);
Console.WriteLine(strSon);
Console.ReadKey();
4)删除字符
1.Remove()方法 public static string Remove(int startIndex,int count);
参数startIndex用于指定开始删除的位置,从0开始索引,count指定删除的字符数量。
代码:
string removeStr = "移除字符串里的字符";
string remStr =removeStr.Remove(2, 3);
//输出移除后的字符串,结果:移除里的字符
Console.WriteLine(remStr);
Console.ReadKey();
5)删除字符串空格
Trim()方法
string TrimStr = " 前面有空格 中间也有空格 后面也有空格 ";
//删除前面的空格
string trimStr1 = TrimStr.TrimStart();
Console.WriteLine(trimStr1);
Console.ReadKey();
6)转换大写与转换小写
1.ToLower() 2.ToUpper()
代码:
string str1 = "abcdEFG";
//转换成小写
Console.WriteLine(str1.ToLower()); //结果:abcdefg
//转换成大写
Console.WriteLine(str1.ToUpper()); //结果:ABCDEFG
Console.ReadKey();
7) 一字符串是否包含另一字符串
Contains()方法
代码:
string str2 = "ascd sdf ddbsa sdasfs";
string str3 = "d s";
string str4 = "ds";
//str3是否在str2里面
Console.WriteLine(str2.Contains(str3));//结果:true
Console.WriteLine(str2.Contains(str4));//结果:false
Console.ReadKey();
8)新的字符串替换老的字符串
Replace()方法
代码:
string str = "替换前的字符串11";
string strReplace = "替换后的字符串22";
string strOutput = str.Replace(str, strReplace);
Console.WriteLine(strOutput);//结果:替换后的字符串22
Console.ReadKey();
9)搜索字符串位置
1.IndexOf()方法 2.IndexOfAny()方法
代码:
//IndexOf()方法用于搜索在一个字符串中,某个特定的字符串或子串第一次出现的位置,该方法区分大小写,返回值为int类型
string strIndex = "dksjiwkdesjd中国人爱中国";
//索引从0开始
Console.WriteLine(strIndex.IndexOf('s')); //索引字符s的位置
Console.WriteLine(strIndex.IndexOf("wkd")); //索引字符串wkd的位置
Console.WriteLine(strIndex.IndexOf('k', 2)); //索引从第三个开始搜索字符”k“的位置
Console.WriteLine(strIndex.IndexOf("中国", 13)); //索引后面字符串"中国"的位置
Console.WriteLine(strIndex.IndexOf("abc",0)) ; //如果字符串中不包含这个字符或子串,则返回-1
char[] indexChar = { 's', 'i', 'j' };
Console.WriteLine(strIndex.IndexOfAny(indexChar)); //索引strIndex字符串中包含字符"s"或"i"或"j"中的一个”字符“
Console.WriteLine(strIndex.IndexOfAny(indexChar, 5));
Console.ReadKey();
10)靠一些分隔符号拆分字符串
Split()方法
代码:
string strSplit = "拆#分$chai#fen%字符串 zi*fu:chuan";
string[] strOutput = strSplit.Split(new char[] { ' ', '#', '$', '%', ':','@','*' }); //操作字符数组可以包含空格
foreach (string str1 in strOutput)
{
Console.WriteLine(str1);
}/* 结果:
拆
分
chai
fen
字符串
zi
fu
chuan
*/
Console.ReadKey();
11)将字符串拆分成字符数组
ToCharArray()方法
代码:
string string1 = "woshizhongguoren我是中国人";
char[] char1 = string1.ToCharArray();
for (int i = 0; i < char1.Length; i++)
{
Console.Write(char1[i]+"\t");
}
//结果:w o s h i z h o n g g u o r e n 我 是 中 国 人
Console.ReadKey();
12)格式化字符串
Format()方法
代码:
/*格式化数字;不区分大小写;c、d、e、f、g、n、x 分别代表货币、十进制、科学计数(指数)、固定点、
常规、数字、往返()、十六进制格式*/
int i = 12315;
Console.WriteLine(string.Format("{0:C}",i)); //结果:¥12315.00
Console.WriteLine(string.Format("{0:C10}", i)); //结果:¥12315.0000000000 C代表货币格式10代表精度
Console.WriteLine(string.Format("{0:d}", i)); //结果:12315
Console.WriteLine(string.Format("{0:d10}", i)); //结果:0000012315
Console.WriteLine(string.Format("{0:e}", i)); //结果:1.231500e+004
Console.WriteLine(string.Format("{0:e10}", i)); //结果:1.2315000000e+004
Console.WriteLine(string.Format("{0:f}", i)); //结果:12315.00
Console.WriteLine(string.Format("{0:f10}", i)); //结果:12315.0000000000
Console.WriteLine(string.Format("{0:g}", i)); //结果:12315
Console.WriteLine(string.Format("{0:g10}", i)); //结果:12315
Console.WriteLine(string.Format("{0:n}", i)); //结果:12,315.00
Console.WriteLine(string.Format("{0:n10}", i)); //结果:12,315.0000000000
Console.WriteLine(string.Format("{0:x}", i)); //结果:301b
Console.WriteLine(string.Format("{0:x10}", i)); //结果:000000301b
Console.WriteLine("\n");
//格式化日期和时间
//DateTime.Now为计算机当前时间,如今天是2012/12/09 17:30:00
Console.WriteLine(string.Format("{0:MM/dd/yyyy}", DateTime.Now));// 12/09/2012
Console.WriteLine(string.Format("{0:dddd,MMMM dd,yyyy}", DateTime.Now)); // 星期天,十二月 09,2012
Console.WriteLine(string.Format("{0:dddd,MMMM dd,yyyy HH:mm}", DateTime.Now));// 星期天,十二月 09,2012 17:30
Console.WriteLine(string.Format("{0:dddd,MMMM dd,yyyy HH:mm:ss}", DateTime.Now));// 星期天,十二月 09,2012 17:30:00
//通用模式
Console.WriteLine(string.Format("{0:MM/dd/yyyy HH:mm}", DateTime.Now));// 12/09/2012 17:30
Console.WriteLine(string.Format("{0:MM/dd/yyyy HH:mm:ss}", DateTime.Now));// 12/09/2012 17:30:00
Console.WriteLine(string.Format("{0:HH:mm}", DateTime.Now)); // 17:30
Console.WriteLine(string.Format("{0:HH:mm:ss}", DateTime.Now)); // 17:30:00
Console.WriteLine(string.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now)); // 2012-12-09 17:30:00
Console.WriteLine(string.Format("{0:MMMM dd,yyyy, HH:mm:ss}", DateTime.Now)); // 十二月 09,2012 17:30:00
Console.ReadKey();
13)向老字符串插入新的字符串
Insert()方法
代码:
string strInsert = "插入前的字符串";
string str1 = "需要插入的字符串11";
string str2 = strInsert.Insert(0, str1);
Console.WriteLine(str2);
Console.ReadKey();
14)比较字符串
1.Compare()方法 2.Equals()方法 3.运算符"==" "!="
代码:
//Compare方法
//比较字符串按照字典排序规则,判定两个字符串的相对大小,,按照字典中,前面单词小于后面单词;
string str1 = "URHskd";
string str2 = "ppHOnyiyeqing";
Console.WriteLine(string.Compare(str1, str2));
//大小写忽略
Console.WriteLine(string.Compare(str1, str2, true));
//str1的子串kd和str2的子串pp忽略大小写比较
Console.WriteLine(string.Compare(str1, 4, str2, 0, 2,true));
//也可以使用Equals方法比较两个字符串是否相等
Console.WriteLine(string.Equals(str1, str2));
//使用”==“运算符比较字符串
Console.WriteLine(str1 == str2);
//使用“!=”运算符比较字符串
Console.WriteLine(str1 != str2);
Console.ReadKey();
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------