信息
您所需的主题如下所示。但此主题未包含在此库中。

String.Split 方法 (Char[])

2013/12/13

返回的字符串数组包含此实例中的子字符串(由指定 Unicode 字符数组的元素分隔)。

Namespace:  System
程序集:  mscorlib(位于 mscorlib.dll 中)

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

参数

separator
类型: System.Char []
分隔此实例中子字符串的 Unicode 字符数组、不包含分隔符的空数组或 null

返回值

类型: System.String []
一个数组,其元素包含此实例中的子字符串,这些子字符串由 separator 中的一个或多个字符分隔。有关更多信息,请参见“备注”一节。

返回的数组元素中不包含分隔符字符。

如果此实例不包含 separator 中的任何字符,则返回的数组由包含此实例的单个元素组成。

如果 separator 参数为 null 或不包含任何字符,则采用空白字符作为分隔符。下表列出了由 Split 方法识别的空白字符。(它们与由 String.Trim 方法识别的空白字符稍有不同。)

Unicode 名称

Unicode 码位

CHARACTER TABULATION

U+0009

LINE FEED

U+000A

LINE TABULATION

U+000B

FORM FEED

U+000C

CARRIAGE RETURN

U+000D

Space

U+0020

NEXT LINE

U+0085

NO-BREAK SPACE

U+00A0

OGHAM SPACE MARK

U+1680

EN QUAD

U+2000

EM QUAD

U+2001

EN SPACE

U+2002

EM SPACE

U+2003

THREE-PER-EM SPACE

U+2004

FOUR-PER-EM SPACE

U+2005

SIX-PER-EM SPACE

U+2006

FIGURE SPACE

U+2007

PUNCTUATION SPACE

U+2008

THIN SPACE

U+2009

HAIR SPACE

U+200A

ZERO WIDTH SPACE

U+200B

LINE SEPARATOR

U+2028

PARAGRAPH SEPARATOR

U+2029

IDEOGRAPHIC SPACE

U+3000

separator 的每一个元素都定义一个单独的分隔符字符。如果两个分隔符相邻,或者在此实例的开头或末尾找到分隔符,则相对应的数组元素包含 Empty

例如:

字符串值

separator

返回的数组

"42, 12, 19"

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

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

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

"42..12..19"

new Char[] {'.'}(C#)

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

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

"Banana"

new Char[] {'.'}(C#)

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

{"Banana"}

"Darb\nSmarba" (C#)

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

new Char[] {} (C#)

Char() = {} (Visual Basic)

{"Darb", "Smarba"}

"Darb\nSmarba" (C#)

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

null (C#)

Nothing (Visual Basic)

{"Darb", "Smarba"}

性能注意事项

Split 方法为返回的数组对象分配内存,同时还为每一个数组元素分配一个 String 对象。如果您的应用程序要求达到最佳性能,或者如果在您的应用程序中内存分配管理很关键,请考虑使用 IndexOfIndexOfAny 方法,也可以选择使用 Compare 方法,在字符串中定位子字符串。

如果在分隔符字符处分割字符串,请使用 IndexOfIndexOfAny 方法在字符串中定位分隔符字符。如果在分隔符字符串处分割字符串,请使用 IndexOfIndexOfAny 方法定位分隔符字符串的第一个字符。然后使用 Compare 方法确定第一个字符后面的字符是否等于分隔符字符串的其余字符。

此外,如果在多个 Split 方法调用中使用相同的字符集拆分字符串,请考虑创建一个数组并在每个方法调用中都引用该数组。这可以极大地减少每个方法调用的额外系统开销。

下面的示例演示如何通过将空白和标点符号视为分隔符来提取文本块中的各个单词。传递给 Split(Char[]) 方法的 separator 参数的字符数组包含空白字符、制表符和一些常用标点符号。


using System;

public class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {

      string words = "This is a list of words, with: a bit of punctuation" +
                     "\tand a tab character.";

      string[] split = words.Split(new Char[] { ' ', ',', '.', ':', '\t' });

      foreach (string s in split)
      {

         if (s.Trim() != "")
            outputBlock.Text += s + "\n";
      }
   }
}
// The example displays the following output:
//       This
//       is
//       a
//       list
//       of
//       words
//       with
//       a
//       bit
//       of
//       punctuation
//       and
//       a
//       tab
//       character


Windows Phone OS

受以下版本支持: 8.0, 7.1, 7.0

Windows Phone

显示: