浪漫骑士必胜

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

字符串的分割

  我们经常会遇到字符串的分割的问题,在后面制作播放器的时候,可以用现在学习的方法来分割歌词。

  下面我们来具体看下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
posted on 2012-08-01 17:51  小事好  阅读(13294)  评论(11编辑  收藏  举报