天天看點

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.

繼續閱讀