C# 之 字串截取--Split

來源:互聯網
上載者:User

標籤:c#

        上一篇部落格《C# 之 字串截取--Substring》 介紹了Substring函數,同時實現將"所屬機構名稱/教師姓名/課程類型/課程名稱"中的所屬機構名稱,教師姓名,課程類型,課程名稱分別截取出來。今天再給大家介紹一種字串截取的函數Split。


        String.Split方法:返回的字串數組包含此執行個體中的子字串(由指定 Unicode 字元數組(separator)的元素分隔)。


        String.Split方法的重載方法有六種類型,但是我覺得都大同小異,只是參數不同,只是需求不同,其中的參數主要有:

       1.Char[] 由指定的Unicode字元數組的元素分隔。
       2.Int32  指定返回子字串的最大數量。
       3.StringSplitOptions 這個參數是一個枚舉類型的參數,只有兩種選項:第一種StringSplitOptions.None表示返回值包括含有Null 字元串的數組元素;第二種StringSplitOptions.RemoveEmptyEntries表示返回值不包括含有Null 字元串的數組元素。
       4.String[] 由指定字串數組的元素分隔。


       只要我們瞭解上面的四種參數分別代表什麼意思,我們就可以根據我們的需求去具體的選擇我們需要重載哪一個Split函數。下面是我將所有的Split函數重載方法實現的一個小例子:

public string[] Split(params char[] separator);

class Program    {        static void Main(string[] args)        {            string s1 = "所屬機構名稱/教師姓名/課程類型/課程名稱";            string[] split = s1.Split(new char[] { '/' });    //返回由'/'分隔的子字串數組            foreach (string s in split)            {                Console.WriteLine(s);            }            Console.WriteLine();        }    }



public string[] Split(char[] separator, int count);

class Program    {        static void Main(string[] args)        {            string s1 = "所屬機構名稱/教師姓名/課程類型/課程名稱";            string[] split = s1.Split(new char[] { '/' }, 3);   //返回由'/'分隔的子字串數組,子字串最大數量為3個            foreach (string s in split)            {                Console.WriteLine(s);            }            Console.WriteLine();        }    }




public string[] Split(char[] separator, StringSplitOptions options);

class Program    {        static void Main(string[] args)        {            string s1 = "所屬機構名稱/教師姓名/課程類型/課程名稱";            //返回由'/'分隔的子字串數組,StringSplitOptions.RemoveEmptyEntries表示傳回值不包括含有Null 字元串的數組元素            string[] split = s1.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries);            foreach (string s in split)            {                Console.WriteLine(s);            }            Console.WriteLine();        }    }




public string[] Split(string[] separator, StringSplitOptions options);

class Program    {        static void Main(string[] args)        {            string s1 = "所屬機構名稱/教師姓名/課程類型/課程名稱";            //返回由"名"分隔的子字串數組,StringSplitOptions.None表示傳回值包括含有Null 字元串的數組元素            string[] a = new string[] { "名" };            string[] split = s1.Split(a, StringSplitOptions.None);            foreach (string s in split)            {                Console.WriteLine(s);            }            Console.WriteLine();        }    }




public string[] Split(char[] separator, int count, StringSplitOptions options);

class Program    {        static void Main(string[] args)        {            string s1 = "所屬機構名稱/教師姓名/課程類型/課程名稱";            //返回由'/'分隔的子字串數組,子字串最大數量為3個,StringSplitOptions.RemoveEmptyEntries表示傳回值不包括含有Null 字元串的數組元素            string[] split = s1.Split(new char[] { '/' }, 3, StringSplitOptions.RemoveEmptyEntries);            foreach (string s in split)            {                Console.WriteLine(s);            }            Console.WriteLine();        }    }




public string[] Split(string[] separator, int count, StringSplitOptions options);

class Program    {        static void Main(string[] args)        {            string s1 = "所屬機構名稱/教師姓名/課程類型/課程名稱";            //返回由"名"分隔的子字串數組,子字串最大數量為3個,StringSplitOptions.None表示傳回值包括含有Null 字元串的數組元素            string[] a = new string[] { "名" };            string[] split = s1.Split(new char[] { '/' }, 3, StringSplitOptions.None);            foreach (string s in split)            {                Console.WriteLine(s);            }            Console.WriteLine();        }    }




    如果現在讓我們來實現上一篇部落格中的需求:將"所屬機構名稱/教師姓名/課程類型/課程名稱"這個字串,按照"/"分別截取出來。是不是更簡單了呢?直接用第一個最簡單的重載函數就能解決我們的問題了...

class Program    {        static void Main(string[] args)        {            string s1 = "所屬機構名稱/教師姓名/課程類型/課程名稱";            string[] split = s1.Split(new char[] { '/' });    //返回由'/'分隔的子字串數組            foreach (string s in split)            {                Console.WriteLine(s);            }            Console.WriteLine();        }    }




    Split函數也能實現我們想要的字串截取功能,雖然它返回的是一個字串數組,重載的參數也比較多,但是和Substring函數相比起來更容易讓人理解......









C# 之 字串截取--Split

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.