天天看点

cstring移除指定字符串_【自学C#】|| 笔记 11 字符串

cstring移除指定字符串_【自学C#】|| 笔记 11 字符串

一、字符串

    一种数据类型,其实就是string类型,用双引号包起来。

    这里主要讲得是对字符串的操作。

    例如截取字符串中的内容、查找字符串中的内容等。

    常用的字符串操作包括获取字符串的长度、查找某个字符在字符串中的位置、替换字符串中的内容、拆分字符串等。

    在字符串操作中常用的属性或方法如下表所示。

编号 属性或方法名 作用
1 Length 获取字符串的长度,即字符串中字符的个数
2 IndexOf 返回整数,得到指定的字符串在原字符串中第一次出现的位置
3 LastlndexOf 返回整数,得到指定的字符串在原字符串中最后一次出现的位置
4 Starts With 返回布尔型的值,判断某个字符串是否以指定的字符串开头
5 EndsWith 返回布尔型的值,判断某个字符串是否以指定的字符串结尾
6 ToLower 返回一个新的字符串,将字符串中的大写字母转换成小写字母
7 ToUpper 返回一个新的字符串,将字符串中的小写字母转换成大写字母
8 Trim 返回一个新的字符串,不带任何参数时表示将原字符串中前后的空格删除。参数为字符数组时表示将原字符串中含有的字符数组中的字符删除
9 Remove 返回一个新的字符串,将字符串中指定位置的字符串移除
10 TrimStart 返回一个新的字符串,将字符串中左侧的空格删除
11 TrimEnd 返回一个新的字符串,将字符串中右侧的空格删除
12 PadLeft 返回一个新的字符串,从字符串的左侧填充空格达到指定的字符串长度
13 PadRight 返回一个新的字符串,从字符串的右侧填充空格达到指定的字符串长度
14 Split 返回一个字符串类型的数组,根据指定的字符数组或者字符串数组中的字符 或字符串作为条件拆分字符串
15 Replace 返回一个新的字符串,用于将指定字符串替换给原字符串中指定的字符串
16 Substring 返回一个新的字符串,用于截取指定的字符串
17 Insert 返回一个新的字符串,将一个字符串插入到另一个字符串中指定索引的位置
18 Concat 返回一个新的字符串,将多个字符串合并成一个字符串

二、获取字符串长度(string.Length)

    就是有string这个类型的类,里面有一个Length的属性,可以直接输出一个字符串的个数。

    表达形式:

        字符串.Length

    例:

string a = "abc0";Console.WriteLine(a.Length);  //4           

    输出字符串的个数,也就是长度。经常用于for循环的判断。

    1.例

        在 Main 方法中从控制台输入一个字符串,输出该字符串的长度,以及字符串中的第一个字符和最后一个字符。

class Program{    static void Main(string[] args)    {        string str = Console.ReadLine();        Console.WriteLine("字符串的长度为:" + str.Length);        Console.WriteLine("字符串中第一个字符为:" + str[0]);        Console.WriteLine("字符串中最后一个字符为:" + str[str.Length - 1]);    }}           

分析:

    第5行是,手动输入一个字符串。

    第6行是,输出输入字符串的个数。

        因为是从1开始数,所以在导出字符时,还需要-1;

    第7行是,输出字符串的第一个字符。

        由于计数是从0开始,因而第一个就是0;

    第8行是,输出字符串的最后一个字符。

        由于最后一个不确定,所以需要先计算长度,然后-1,再输出。

    因为字符串可以理解成一个数组,所以也就可以通过str[下标]进行输出字符。

    2.例

    在 Main 方法中从控制台输入一个字符串,并将字符串中的字符逆序输出。

class Program{    static void Main(string[] args)    {        string str = Console.ReadLine();        for(int i = str.Length - 1; i >= 0; i--)        {            Console.WriteLine(str[i]);        }    }}           

这里是通过减法的for循环来输出遍历字符。

分析:

    先手动输入一个字符串。

    然后进行for循环,最终进行输出。

    由于是倒叙,所以首先要计算出字符串的长度。

        但字符串的长度是由1开始计算的,而字符输出却是从0开始计算的,所以这里就需要-1.

        而判断时,就需要大于等于0,然后i--。

三、IndexOf和LastIndexOf:查找字符串中的字符

    可以理解成,在一个已经写好的类中,有这两个函数。

    IndexOf 方法得到的是指定字符串在原字符串中第一次出现的位置。

        并把所在的位置数返回出来。

        例:

string str = “abc0”;int b = str.IndexOf("b");Console.WriteLine(b);  //输出的结果为1.//因为从0开始计数。           

    LastlndexOf 方法得到的是指定字符串在查找的字符串中最后一次出现的位置。

        例:

string str = “abcb0”;int b = str.str.LastIndexOf("b");Console.WriteLine(b);  //3//依旧还是从左边开数,只是会输出最后一个字符的数。           

    需要注意的是字符串中的每个字符的位置是从 0 开始的。

    无论是哪个方法,只要指定的字符串在查找的字符串中不存在,结果都为 -1。

    如果要判断字符串中是否仅含有一个指定的字符串,则需要将 IndexOf 和 LastlndexOf 方法一起使用,只要通过这两个方法得到的字符串出现的位置是同一个即可。

    1.例

    在 Main 方法中从控制台输入一个字符串,然后判断字符串中是否含有 @, 并输出 @ 的位置。

class Program{    static void Main(string[] args)    {        string str = Console.ReadLine();        if (str.IndexOf("@") != -1)        {            Console.WriteLine("字符串中含有@,其出现的位置是{0}", str.IndexOf("@") + 1);        }        else        {            Console.WriteLine("字符串中不含有@");        }    }}           

分析:

    先手动输入一行字符串,

    然后判断是否存在你需要的字符或字符串。

    如果不为-1,就表示存在,然后输出。

    否则就输出else的。

    2.例

    在 Main 方法中从控制台输入一个字符串,判断该字符串中是否仅含有一个 @。

    根据题目要求,使用 IndexOf 方法查找第一个 @ 出现的位置与使用 LastlndexOf 方法查找 @ 在字符串中最后一次出现的位置相同即可,实现的代码如下。

class Program{    static void Main(string[] args)    {        string str = Console.ReadLine();        int firstIndex = str.IndexOf("@");        int lastIndex = str.LastIndexOf("@");        if(firstIndex != -1)        {            if (firstIndex == lastIndex)            {                Console.WriteLine("在该字符串中仅含有一个@");            }            else            {                Console.WriteLine("在该字符串中含有多个@");            }        }        else        {            Console.WriteLine("在该字符串中不含有@");        }    }}           

分析:

    先判断是否存在,第8行。如果不存在就输出第21行。

    然后再判断第一次出现的位置和最后一次出现的位置是否相等。

        也就是str.IndexOf("@");和str.LastIndexOf("@");进行对比。

    如果为True,所以输出第12行。

    否则就输出16行。

四、字符串替换函。Replace

    字符串的替换操作是指将字符串中指定的字符串替换成新字符串。

    1.例

    在 Main 方法中从控制台输入一个字符串,然后将字符串中所有的‘,’替换成‘_’。

class Program{    static void Main(string[] args)    {        string str = Console.ReadLine();        if (str.IndexOf(",") != -1)        {            str = str.Replace(",", "_");        }        Console.WriteLine("替换后的字符串为:" + str);    }}           

分析:

    将输入的字符串中的所有“逗号”换成“下画线”。

五、字符串截取函数

    在一个字符串中截取一部分字符串也是经常用到的。

    例如从身份证号码中取得岀生年月日、截取手机号码的前 3 位、截取给定邮箱的用户名等。

    例:

        Substring(指定位置);

    //从字符串中的指定位置开始截取到字符串结束

Substring(指定位置, 截取的字符的个数);

    //从字符串中的指定位置开始截取指定字符个数的字符、

    1.例

        在 Main 方法中从控制台输入邮箱,要求邮箱中仅含有一个 @,然后截取邮箱中的用户名输出。

class Program{    static void Main(string[] args)    {        string str = “[email protected]”;        int firstIndex = str.IndexOf("@");        int lastIndex = str.LastIndexOf("@");        if(firstIndex != -1 && firstIndex == lastIndex)        {            str = str.Substring(0, firstIndex);        }        Console.WriteLine("邮箱中的用户名是:" + str);//abc    }}           

分析:

    先确定“@”第一次出现的位置数,和最后出现的位置数。

    然后进行判断,是否存在和只出现一次。

    然后截取@前的部分。

    str.Substring(0, firstIndex);

        从零开始截取,然后到@前的一个。也就得到了abc。

        firstIndex应该是3,而截取时,保留前面的,舍弃后面的。

       [0,3),前取后舍,即0、1、2、没有3.

六、字符串插入

    在一个字符串中可以在指定位置插入另一个字符串。

    使用的方法是 Insert。

    在 Insert 方法中需要两个参数,一个是字符串插入的位置,一个是字符串。

    例:

        在 Main 方法中从控制台输入一个字符串,然后将‘@@@’插入到字符串的第 2 个字符的位置。

class Program{    static void Main(string[] args)    {        string str = Console.ReadLine();        str = str.Insert(1, "@@@");        Console.WriteLine("新字符串为:" + str);    }}           

分析:

    因为这个也是从0开始计算,所有第二个字符,却是1.

继续阅读