黑马程序员-字符串

---------------------- 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培训、期待与您交流! ----------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值