zoukankan      html  css  js  c++  java
  • C#中如何快速处理字符串

    字符串的分割

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

      下面我们来具体看下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
  • 相关阅读:
    【概念】using 三种使用方式
    2019-7-2 作业1 2 3
    异常
    java.lang.NullPointerException
    课外作业(建立double类型的小数,按照四舍五入保留2位小数)
    作业1.2.3.4
    左自增与右自增的区别
    深入了解JVM(Java虚拟机)
    Eclipse报错Could not resolve archetype
    ThinkPad E550 连蓝牙鼠标logitech M557
  • 原文地址:https://www.cnblogs.com/zysbk/p/2618766.html
Copyright © 2011-2022 走看看