一直以来都喜欢谢霆锋,喜欢他身上的那股劲,也一直喜欢唱他的歌,比如这首最广为人知的《因为爱,所以爱》:因为爱所以爱,温柔经不起安排,愉快那么快,不要等到互相伤害...是的,没到互相伤害,他与王菲就各奔东西了,多年后的今天,谈起王菲霆锋依然是恍如昨天一样,而就在这两天,王菲又和亚鹏劳燕分飞了,我们生在这个浮躁的年代,即便是房子车子把我们压得喘不过气的时候,我们对爱情的幻想依然不灭,可是锋芝恋和王菲以及董洁的前车之鉴,我们是否还有勇气相信爱情,除了一声唏嘘之外,我们又能做些什么呢?除了珍惜身边的一切外,我想我们更应该做的就是奋斗ing,所以程序猿们,雄起吧,字符串来袭,你准备好了吗?你们喜不喜欢我不知道,但是我是因为爱,所以爱!

1、先说说这个StringBuilder,叫做动态字符串,关于这个东东怎么用的说法是太多了,我就不明白了,很多人总喜欢把技术写的那么复杂,嘛呢?我觉得越简单越好,让我们的大脑留点时间给程序以外的事情不好吗?

记住了:在你用到一个字符串超过五次的情况下,果断用这个StringBuilder,为啥,性能呗!它的方法大致跟string的差不多,只不过少了点,具体有哪些呢,自己MSDN去!

用之前new一个这样的实例就可以了

StringBuilder MyStringBuilder = new StringBuilder("Hello World!", );
//然后你就可以肆无忌惮的用它的方法了

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 =;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( ));
//显示 "name" ,从索引位置3开始截取4个字符
Console.WriteLine(mystring.Substring( , ));

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=”″;
str=str.PadLeft(,’′); //无第二参数为加空格,结果为“100”,右边一样的道理

8、ToUpper和ToLower——字符串瞬间装换大小写,很简单,不说了
9、Remove——删除不留情面

//remove 删除字符串中指定位置的字符串片段 第一参数是位置 第2个参数是长度
string str = "";
Console.WriteLine(str.Remove());
Console.WriteLine(str.Remove(,));

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,"霆锋","电影","")); 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 = ;
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,));//输出3.14

21、有木有用过new string()构造N个重复的字符串?

string s = new string('$',);
Console.WriteLine(s);//结果:$$$$$$$

22、开发中是不是会经常遇到判断字符串是否为空的情况?教你几种方式

1if(mystr == "")
2if(mystr == String.Empty)
3if(mystr.Lenght == )//最快哦

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类帮你处理字符串

字符串里边的学问其实很大,我等小菜程序猿也只是略知一二,希望通过此篇梳理一下字符串的相关知识,仅此而已!

C#字符串来袭——因为爱,所以爱的更多相关文章

  1. 银行爱“IOE”爱得有多深

    本文由阿尔法工场欧阳长征推荐 导读:如果银行是一家海鲜酒楼,把IBM换掉相当于大搞一次装修,把Oracle换掉相当于把厨子和菜谱全部换掉,把EMC换掉相当于把放食材工具的储物间换个地方.难度在于,这海 ...

  2. 17 款程序员必备 Chrome扩展插件,爱了爱了!

    整理:小哈学Java 目录 美化 Just Black 午夜黑官方主题 Dark Reader 暗黑主题 为什么你们就是不能加个空格呢? 标签管理 Momentum [新标签页] Tab Manage ...

  3. [java]__如何用你的编程语言表达至尊宝"爱你一万年"的浪漫情怀.

    前言 我在很多地方,或多或少都了解到人们对程序员的看法,大多是智商高情商低,不懂的浪漫之类的,并且看到了一个十分有趣的视频,用程序来表达你对女朋友的爱,于是,便来了兴趣,我想最浪漫的承诺,应该就是大话 ...

  4. 记真实自己,炫精彩人生---《爱记》app使用体验

    真的有款神器吗,能找到合适的Ta,能秀出自己的新生活,能让自己的心情舒爽,有,体验了下.就是爱记.果粉的福利. [爱记]是集心情记录.分享.评价与交流于一体的工具,TA是你心灵休憩的港湾,也是你记忆放 ...

  5. 小插曲之变量和字符串 - 零基础入门学习Python003

    小插曲之变量和字符串 让编程改变世界 Change the world by program 变量 (此处只是省略N多细节,详细通过视频学习) 变量名就像我们现实社会的名字,把一个值赋值给一个名字时, ...

  6. 认识Java中的字符串

    Java 中 String 类的常用方法 Ⅰ String 类提供了许多用来处理字符串的方法,例如,获取字符串长度.对字符串进行截取.将字符串转换为大写或小写.字符串分割等,下面我们就来领略它的强大之 ...

  7. Python基础——字符串

    Python版本:3.6.2  操作系统:Windows  作者:SmallWZQ 在Python中,字符串也是一种数据类型.相比其它数据类型,字符串算是比较复杂的.为何呢?因为字符串不仅包含英文字母 ...

  8. php分割中文字符串为数组的简单例子

    近日在做东西时,遇到要把中文字符进行逐字分割,试了很多方法,都不行,后来发现了一个超简单的方法: 分割字符串很简单,主要是用到函数preg_match_all.当处理含有中文的字符串时,可以用如下的方 ...

  9. 前端PHP入门-004-数据类型,特别需要注意字符串

    人类世界对万事万物都有种类划分,例如: 哺乳动物 人.猫.马.鸭嘴兽-.等等 蔬菜 西红柿.波菜.茄子-.等等 水果 西瓜.桃子.苹果-.等等 数据类型:就是对数据分类的一个划分而已 整型就是整数 我 ...

随机推荐

  1. python 多网站采集,解决编码问题

    import chardet def get_charset(str): return chardet.detect(str)['encoding'] html = '' # bytes 字节串 ch ...

  2. LOJ #6279. 数列分块入门 3-分块(区间加法、查询区间内小于某个值x的前驱(比其小的最大元素))

    #6279. 数列分块入门 3 内存限制:256 MiB时间限制:1500 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: hzwer 提交提交记录统计测试数据讨论 3   题目描述 给 ...

  3. 2. 创建一个简单的Maven项目

    ☞ 创建项目 选定一个目录,如E:\workspace\maven,新建的项目将放在这个目录. 运行CMD,切换到该目录. 执行mvn archetype:generate直到输出"Choo ...

  4. 2017腾讯OMG实习生面试总结

    2017腾讯OMG实习生面试总结 一面 一面有两个面试官,轮着来的,一共是一个半小时,中间等了10分钟左右.结合简历问了问项目,也考察了基础,手写了两道简单的算法题.问题包括: 第一个面试官 1.自我 ...

  5. Python开发基础-Day10生成器表达式形式、面向过程编程、内置函数部分

    生成器表达式形式 直接上代码 # yield的表达式形式 def foo(): print('starting') while True: x=yield #默认返回为空,实际上为x=yield No ...

  6. [Arc074E] RGB Sequence

    [Arc074E] RGB Sequence Description 今天也在愉快地玩Minecraft!现在MM有一块1?N的空地,每个格子按照顺序标记为1到N.MM想要在这块空地上铺上红石块.绿宝 ...

  7. BZOJ 2697 特技飞行(贪心)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2697 [题目大意] 神犇航空开展了一项载客特技飞行业务. 每次飞行长N个单位时间,每个 ...

  8. 【博弈论】【SG函数】【线段树】Petrozavodsk Summer Training Camp 2016 Day 9: AtCoder Japanese Problems Selection, Thursday, September 1, 2016 Problem H. Cups and Beans

    一开始有n个杯子,每个杯子里有一些豆子,两个人轮流操作,每次只能将一个豆子移动到其所在杯子之前的某个杯子里,不过可以移动到的范围只有一段区间.问你是否先手必胜. 一个杯子里的豆子全都等价的,因为sg函 ...

  9. 零起点学算法08——简单的输入和计算(a+b)

    #include <stdio.h> int main() { int a; int b; scanf("%d %d",&a,&b); printf(& ...

  10. 20172333 2017-2018-2 《Java程序设计》第4周学习总结

    20172333 2017-2018-2 <Java程序设计>第4周学习总结 教材学习内容 1.类结构的定义与概念 2.利用实例数据建立对象状态的概念 3.描述可见性修饰符作用在方法和数据 ...