程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# 之 字符串截取--Split

C# 之 字符串截取--Split

編輯:C#入門知識

C# 之 字符串截取--Split


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


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


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

1.Char[] 由指定的Unicode字符數組的元素分隔。
2.Int32 指定返回子字符串的最大數量。
3.StringSplitOptions 這個參數是一個枚舉類型的參數,只有兩種選項:第一種StringSplitOptions.None表示返回值包括含有空字符串的數組元素;第二種StringSplitOptions.RemoveEmptyEntries表示返回值不包括含有空字符串的數組元素。
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();
        }
    }
\

<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PGJyPgo8YnI+CjwvcD4KPHA+cHVibGljIHN0cmluZ1tdIFNwbGl0KGNoYXJbXSBzZXBhcmF0b3IsIGludCBjb3VudCk7PC9wPgo8cD48L3A+CjxwcmUgY2xhc3M9"brush:java;">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表示返回值不包括含有空字符串的數組元素
            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表示返回值包括含有空字符串的數組元素
            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表示返回值不包括含有空字符串的數組元素
            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表示返回值包括含有空字符串的數組元素
            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函數相比起來更容易讓人理解......









  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved