本文為機器翻譯文章。如需檢視英文版,請選取 [原文] 核取方塊。您也可以將滑鼠指標移到文字上,即可在快顯視窗顯示英文原文。
譯文
原文

String.Split 方法 (Char[], Int32)

 

根據陣列中的字元分割字串成最大數目的子字串。 您也要指定傳回的子字串之最大數目。

命名空間:   System
組件:  mscorlib (於 mscorlib.dll)

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

參數

separator
Type: System.Char[]

字串陣列 (可分隔這個字串中的子字串)、不含任何分隔符號的空陣列,或 null

count
Type: System.Int32

要傳回的子字串之最大數目。

傳回值

Type: System.String[]

陣列,其項目中包含了這個執行個體中的子字串,由 separator 內的一或多個字元分隔。 如需詳細資訊,請參閱<備註>一節。

Exception Condition
ArgumentOutOfRangeException

count 為負。

傳回陣列的項目中不包含分隔符號字元。

如果這個執行個體不包含任何字元separator,傳回的陣列包含這個執行個體的單一項目所組成。 如果count為零,則傳回空陣列。

如果separator參數是null未包含任何字元,或空格字元會假設為分隔符號。 空白字元會由 Unicode 標準和傳回true如果傳遞至Char.IsWhiteSpace方法。

每個項目separator定義不同的分隔符號字元。 如果兩個分隔符號是相鄰的或是位於分隔符號的開頭或結尾的這個執行個體,對應的陣列元素包含Empty

如果有多個count子字串,在本例中,第一個count減 1 的子字串會傳回在第一個count減 1 的傳回值,而其餘字元在這個執行個體中的項目中傳回的傳回值的最後一個元素。

如果count數目大於可用的子字串所傳回的子字串,並擲回任何例外狀況。

下表提供範例。

字串值

Separator

計數

傳回的陣列

"42, 12, 19"

新 Char [] {',' ' '} (C#)

Char () = {","c""c} (Visual Basic)

2

{"42", " 12, 19"}

"42..12..19"

新 Char [] {'。 '} (C#)

Char () = {"。"c} (Visual Basic)

4

{"42", "", "12", ".19"}

「 Banana"

新 Char [] {'。 '} (C#)

Char () = {"。"c} (Visual Basic)

2

{"香蕉"}

「 Darb\nSmarba 」 (C#)

「 Darb"& vbLf &"Smarba 」 (Visual Basic)

新的 Char [] {} (C#)

Char () = {} (Visual Basic)

1

{"Darb\nSmarba"}(C#)

「 Darb"& vbLf &"Smarba 」 (Visual Basic)

「 Darb\nSmarba 」 (C#)

「 Darb"& vbLf &"Smarba 」 (Visual Basic)

新 Char [] null (C#)

Char () = Nothing

2

{"Darb","Smarba"}

「 Darb\nSmarba 」 (C#)

「 Darb"& vbLf &"Smarba 」 (Visual Basic)

新 Char [] null (C#)

Char () = Nothing

100

{"Darb","Smarba"}

Split方法傳回的陣列物件配置記憶體和String每個陣列元素的物件。 如果您的應用程式需要最佳效能,或管理記憶體配置是關鍵應用程式中,請考慮使用IndexOfIndexOfAny方法,並選擇性地Compare方法,來找出在字串內子字串。

如果您要分割位於分隔字元字串,使用IndexOfIndexOfAny方法來找出字串中的分隔字元。 如果您要分割的分隔符號字串的字串,使用IndexOfIndexOfAny方法來找出第一個字元的分隔符號字串。 然後使用Compare方法,以判斷是否相等的分隔符號字串的其餘字元之後的第一個字元的字元。

此外,如果相同設定的字元用來分割在多個字串Split方法呼叫,請考慮建立單一的陣列,並在每個方法呼叫中參考它。 這會大幅降低每個方法呼叫的額外負擔。

呼叫端注意事項︰

在.NET Framework 3.5和舊版中,如果Split傳遞給方法separator也就是null或未包含任何字元,方法會使用稍微不同的一組字元與字串分隔Trim方法會修剪該字串。 在.NET Framework 4,這兩種方法使用一組完全相同的 Unicode 空白字元。

下列範例會示範如何count影響字串所傳回的數字Split

using System;

public class Example
{
   public static void Main() 
   {
      string delimStr = " ,.:";
      char [] delimiter = delimStr.ToCharArray();
      string words = "one two,three:four.";
      string [] split = null;

      Console.WriteLine("The delimiters are -{0}-", delimStr);
      for (int x = 1; x <= 5; x++) {
         split = words.Split(delimiter, x);
         Console.WriteLine("\ncount = {0,2} ..............", x);
         foreach (var s in split) {
             Console.WriteLine("-{0}-", s);
         }
      }
   }
}
// The example displays the following output:
//       The delimiters are - ,.:-
//       count =  1 ..............
//       -one two,three:four.-
//       count =  2 ..............
//       -one-
//       -two,three:four.-
//       count =  3 ..............
//       -one-
//       -two-
//       -three:four.-
//       count =  4 ..............
//       -one-
//       -two-
//       -three-
//       -four.-
//       count =  5 ..............
//       -one-
//       -two-
//       -three-
//       -four-
//       --

通用 Windows 平台
自 8 起供應
.NET Framework
自 1.1 起供應
可攜式類別庫
提供支援︰ 可攜式 .NET 平台
Windows Phone Silverlight
自 8.0 起供應
Windows Phone
自 8.1 起供應
回到頁首
顯示: