字符串的分割
我们经常会遇到字符串的分割的问题,在后面制作播放器的时候,可以用现在学习的方法来分割歌词。
下面我们来具体看下string[]Split(params char[] separator):将字符串按照指定的分割符分割为字符串数组:
图一、字符串的分割
String[] Split(char[] separator, StringSplitOptions options)将字符串按照指定的char分隔符分割为字符串数组(options去RemoveEmptyEntries的时候移除结果中的空白字符串);
图二、看看跟刚才有什么不一样的地方
图三、干掉空白项的
如果用户输入的是汉字,我们怎么把它提炼出来呢?
我们在学习的时候,重点研究string中的方法,因为在string中的方法还是比较全面的,这里详细的介绍里面的基础知识,供初学者参考,目的是为了让大家在后面少走弯路。
下面我们看字符串函数中的其它常用方法。
字符串替换: String Replace(string oldValue,string newValue)将字符串中的出现oldValue的地方替换为newValue.例子:名字替换。
图四、字符的替换
图五、字符串的替换
取子字符串:string Substring(int startIndex),取从位置startIndex开始一直到最后的子字符串;
图六、截取字符串
Substring();第一个重载 参数是int类型,给一个数字,就会从这个下标开始截取。截取到最后
Substring();第二个重载,两个参数都是int类型,第一个参数是从哪个下标开始截取,第二个参数截取几个字符串;
如果截取的个数超出字符串的长度会报异常
图七、判断字符串中是否含有这个字符串
Bool StartsWith(string value)判断字符串是否以子串value开始;
图八、判断字符串是不是以川川开始的
Bool EndsWith(string value)判断字符串是否以子串value结束;
图九、从后往前判断
和上面的那个方法正好相反,判断是不是以某个字符串结尾
Int IndexOf(string value):取子串value第一次出现的位置。
图十、查找字符串里面的e
一道面试题呦
stringBuilder(简称SB)和string的区别?
答:string在进行运算时(如赋值、拼接等)会产生一个新的实例,而StringBuilder则不会,所以在大量字符串拼接或频繁对某一字符串进行操作时最好使用StringBuilder,不要使用String
如果要操作一个不断增长的字符串,尽量不用string类 改用StringBuilder类,两个类的工作原理不同 string类是一种传统的修改字符串的方法,它确实可以完成把一个字符串添加到另一个字符串上的工作没错,但是在NET框架下,这个操作实在是划不来,因为系统先是把对象,并读取内存中的数据付给该对象,这一来二去的,耗了不少时间。而使用System Text命名空间下面的StringBuilder类就不是这样了,它提供的Append方法,能够在已有对象的原地进行字符串的修改,简单而且直接。当然,一般情况下觉察不到这二者效率的差异,但如果你要对某个字符串进行大量的添加操作,那么StringBuilder类所耗费的时间和String类简直不是一个数量级的。
练习
1.接收用户输入的字符串,将其中的字符以与输入相反的顺序输出。"abc"→"cba"---------之前学过
2.接收用户输入的一句英文,将其中的单词以反序输出。"hello c sharp"→"sharp c hello"-----------同上
如果我是你的领导现在让你们做上面的两个练习,看看你们能从容的通过简单的方法写出上面两个题的代码么?
着重看我下面的方法,题目:从Email中提取出用户名和域名:abc@163.com。----------分割------------
图十一、IndexOf后面经常用到的方法
让用户输入一句话,找出所有e的位置
图十二、找出字符串里面所有的e
练习:文本文件中存储了多个文章标题、作者,标题和作者之间用若干空格(数量不定)隔开,每行一个,标题有的长有的短,输出到控制台的时候最多标题长度10,如果超过10,则截取长度8的子串并且最后添加“...”,加一个竖线后输出作者的名字。
图十三、读文章内容作判断
图十四、读文章做判断最终完整演示
Insert 在此示例中的制定索引位置插入一个指定的string实例
图十五、insert
在学习到这个阶段的时候,想必大家看到所学的方法还是相当的多的,我们只要不放弃,有许三多抡锤的精神。后面的道路将会一片光明。这里注意:需要找一些练习,多敲几遍代码。
图十六、判断字符串是否为空
图十七、在字符串中添加内容
图十八、remove
图十九、trim
在今天的内容更多的是在控制台上面进行操作的,略显枯燥。有人说学C#的人只会拖控件,看了上面的文章,控件真的只有这么简单么?这里写到的很多内容在我们后面学习winform也就是窗体应用程序的时候都会用到。为C#爱好者,在之后写项目的时候做好充足的准备。也希望本人的努力,能让初学者得到对C#更好的诠释。
作者近期文章列表:
C#基础教程(完全免费,献给代码爱好者的最好礼物。注:本 作者分享自己精心整理的C#基础教程,无任何商业目的。希望与 更多的代码爱好者交流心得,也请高手多多指点!!!) | |
面向过程 | 三种循环的比较 |
C#中的方法(上) | |
我们常见的数组 | |
面向对象 | 思想的转变 |
C#中超级好用的类 | |
C#中析构函数和命名空间的妙用 | |
C#中超级好用的字符串 | |
GDI+ | 这些年我收集的GDI+代码 |
这些年我收集的GDI+代码2 | |
HTML概述 | 你不能忽视的HTML语言 |
你不能忽视的HTML语言2精编篇 | |
你不能忽视的HTML语言3 |