C#字符串来袭——因为爱,所以爱
一直以来都喜欢谢霆锋,喜欢他身上的那股劲,也一直喜欢唱他的歌,比如这首最广为人知的《因为爱,所以爱》:因为爱所以爱,温柔经不起安排,愉快那么快,不要等到互相伤害...是的,没到互相伤害,他与王菲就各奔东西了,多年后的今天,谈起王菲霆锋依然是恍如昨天一样,而就在这两天,王菲又和亚鹏劳燕分飞了,我们生在这个浮躁的年代,即便是房子车子把我们压得喘不过气的时候,我们对爱情的幻想依然不灭,可是锋芝恋和王菲以及董洁的前车之鉴,我们是否还有勇气相信爱情,除了一声唏嘘之外,我们又能做些什么呢?除了珍惜身边的一切外,我想我们更应该做的就是奋斗ing,所以程序猿们,雄起吧,字符串来袭,你准备好了吗?你们喜不喜欢我不知道,但是我是因为爱,所以爱!
1、先说说这个StringBuilder,叫做动态字符串,关于这个东东怎么用的说法是太多了,我就不明白了,很多人总喜欢把技术写的那么复杂,嘛呢?我觉得越简单越好,让我们的大脑留点时间给程序以外的事情不好吗?
记住了:在你用到一个字符串超过五次的情况下,果断用这个StringBuilder,为啥,性能呗!它的方法大致跟string的差不多,只不过少了点,具体有哪些呢,自己MSDN去!
用之前new一个这样的实例就可以了
StringBuilder MyStringBuilder = new StringBuilder("Hello World!", 25); //然后你就可以肆无忌惮的用它的方法了
2、string.Concat()——字符串的联姻,我不想说什么话,让你看个例子就一切明了
string str1 = "中国"; string str2 = "好声音"; Console.WriteLine(string.Concat(str1, str2)); //输出:中国好声音
3、把字符串变成字符数组来访问的三种方式:
//用foreach的方式 string theString = "yes,I do!"; foreach(char s in theString) { Console.Write(s); } //通过ToCharArray()形式来获得表示字符串的字符数组 string theString = "hello World"; char[] theChars = theString.ToCharArray(); //用数组下标的方式 string s = "Iamwangwei"; for(int i =0;i<s.length;i++) { console.Write(s[i]); }
4、string.Substring()——截取子串,是字符串中的强盗
string mystring="My name is Jewill."; //显示 "name is Jewill." ,从索引位置3开始截取 Console.WriteLine(mystring.Substring( 3 )); //显示 "name" ,从索引位置3开始截取4个字符 Console.WriteLine(mystring.Substring( 3,4 ));
5、String.IndexOf()和String.LastIndexOf()——查找子串,神一样的速度
string myString = "因为爱所以爱"; myString.IndexOf("为");//位置为1 myString.IndexOf("爱");//位置为2 myString.LastIndexOf("爱");//位置为5 myString.IndexOf("屌丝");//位置为-1,找不到啊
6、Substring和IndexOf之双剑合璧——帮你找出字符串里边的东东
string myString = "因为爱所以爱"; string result = myString.Substring(myString.IndexOf("所")); //result为:所以爱
7、PadLeft和PadRight——左右端填充字符串到指定长度
string str=”00″; str=str.PadLeft(3,’1′); //无第二参数为加空格,结果为“100”,右边一样的道理
8、ToUpper和ToLower——字符串瞬间装换大小写,很简单,不说了
9、Remove——删除不留情面
//remove 删除字符串中指定位置的字符串片段 第一参数是位置 第2个参数是长度 string str = "0123456789"; Console.WriteLine(str.Remove(5)); Console.WriteLine(str.Remove(5,1));
10、Replace——让我一次换个够
string str = "因为爱所以爱"; Console.WriteLine(str.Replace("爱", "恨")); //输出:因为恨所以恨
11、Trim——去掉你的空白格
string s = " 天天向上 "; Console.WriteLine(s.TrimStart()); //结果:"天天向上 " Console.WriteLine(s.TrimEnd()); //结果:" 天天向上" Console.WriteLine(s.Trim()); //结果:"天天向上"
12、Insert——喜欢插队的家伙,随意插入字符
string s = "天天向上"; Console.WriteLine(s.Insert(2,"想")); //结果:"天天想向上"
13、Split——喜欢分裂人家字符串的家庭啊,把带有某一个特殊标记的字符串转换为字符串数组
string str = "中国|美国|俄罗斯"; string[] arr = str.Split('|'); foreach (string s in arr) { Console.WriteLine(s); } //结果:中国 美国 俄罗斯
14、Join——呵呵,这个倒是喜欢给字符串做媒啊,跟Split完全相反
string str = "中国|美国|俄罗斯"; string[] arr = str.Split('|'); string newStr = string.Join("*",arr);// newStr变为"中国*美国*俄罗斯";
15、Format——爱你没商量,确实好用,按你的格式输出想要的东东,很多的,自己查查格式符,很多的
string str = "my name is {0},I like {1},My age is{2}"; Console.WriteLine(string.Format(str,"霆锋","电影","33"));
var myStr = 120.5;
Console.WriteLine(string.Format("{0:C}",myStr));//输出货币
16、对了还有N多转义字符串可用哦,什么\n,\r、、、老多了,自己查查就会用了
17、那有些人肯定说我不想用转义字符串,太TMD烦了,可不可以偷个懒啊,必须的啊:用@
@”C:\WINDOWS\system32″ 代替 “C:\\WINDOWS\\system32″ 有木有?一样一样的
18、ToString和Covert.ToInt32——让int和string随便转换,当然了tostring()也可以按你想要的方式显示字符串
double val=Math.PI; Console.WriteLine(val.ToString("F3");//显示 3.142 ,其他的一个道理,不解释 int a = 123456; string s = a.tostring(); int b = Convert.ToInt32(s); Console.WriteLine(s);//转换成功,结果:123456 Console.WriteLine(b);//转换成功,结果:123456
19、Convert.ToInt32、Int32.Parse和Int32.TryParse的区别是什么?都能把string转换为int,其实也就是一个性能的差别而已,记住就行:
根据性能好坏:首选Int32.TryParse(),其次是Int32.Parse(),最后是Convert.ToInt32()
20、Math.Round()——让四舍五入变得简单
Double a = 3.14159 Console.WriteLine(Math.Round(a,2));//输出3.14
21、有木有用过new string()构造N个重复的字符串?
string s = new string('$',7); Console.WriteLine(s);//结果:$$$$$$$
22、开发中是不是会经常遇到判断字符串是否为空的情况?教你几种方式
1if(mystr == "") 2if(mystr == String.Empty) 3if(mystr.Lenght == 0)//最快哦
23、字符串的比较,四个函数可用:Compare( )、CompareTo( )、CompareOrdinal( )、Equals( ),具体用法上网自己查查去
24、C#类库里边有个牛B的东东System.Text.RegularExpressions.Regex,到时候记得要引用这个东东哦,因为它就是传说中的正则表达式啊
//一个简单的正则例子 string[] s = "123-456-7890"; string sPattern = "^\\d{3}-\\d{3}-\\d{4}$"; if (System.Text.RegularExpressions.Regex.IsMatch(s, sPattern)) { Console.WriteLine("格式正确"); } else { Console.WriteLine("格式不正确"); }
总结:
A、如果你觉得string类提供的方法不够用怎么办?——你可以利用C#里边的扩展方法进行扩展,这里就不具体说了
B、最好你能封装一个stringhelper类帮你处理字符串
字符串里边的学问其实很大,我等小菜程序猿也只是略知一二,希望通过此篇梳理一下字符串的相关知识,仅此而已!