本文由机器翻译。若要查看英语原文,请勾选“英语”复选框。 也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。
翻译
英语

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"}

"香蕉"

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

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

2

{"香蕉"}

"Darb\nSmarba"(C#)

"Darb"1 & vbLf."Smarba"(Visual Basic)

新 Char [] {} (C#)

Char () = {} (Visual Basic)

1

{"Darb\nSmarba"}(C#)

"Darb"1 & vbLf."Smarba"(Visual Basic)

"Darb\nSmarba"(C#)

"Darb"1 & vbLf."Smarba"(Visual Basic)

新的 Char [] null (C#)

Char () = Nothing

2

{"Darb","Smarba"}

"Darb\nSmarba"(C#)

"Darb"1 & 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方法传递separatornull或不包含任何字符,该方法使用略有不同的一组字符比字符串拆分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 起可用
返回页首
显示: