String.Split Method (array<Char[])
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Returns a string array that contains the substrings in this instance that are delimited by elements of a specified Unicode character array.
Namespace: System
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Function Split ( _
ParamArray separator As Char() _
) As String()
public string[] Split(
params char[] separator
)
Parameters
- separator
Type: array<System.Char[]
An array of Unicode characters that delimit the substrings in this instance, an empty array that contains no delimiters, or nulla null reference (Nothing in Visual Basic).
Return Value
Type: array<System.String[]
An array whose elements contain the substrings in this instance that are delimited by one or more characters in separator. For more information, see the Remarks section.
Remarks
Delimiter characters are not included in the elements of the returned array.
If this instance does not contain any of the characters in separator, the returned array consists of a single element that contains this instance.
If the separator parameter is nulla null reference (Nothing in Visual Basic) or contains no characters, white-space characters are assumed to be the delimiters. The following table lists the white-space characters recognized by the Split method. (It is slightly different than the white-space characters recognized by the String.Trim method.)
Unicode name |
Unicode code point |
---|---|
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 |
Each element of separator defines a separate delimiter character. If two delimiters are adjacent, or a delimiter is found at the beginning or end of this instance, the corresponding array element contains Empty.
For example:
String value |
separator |
Returned array |
---|---|---|
"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"} |
Performance Considerations
The Split methods allocate memory for the returned array object and a String object for each array element. If your application requires optimal performance or if managing memory allocation is critical in your application, consider using the IndexOf or IndexOfAny method, and optionally the Compare method, to locate a substring within a string.
If you are splitting a string at a separator character, use the IndexOf or IndexOfAny method to locate a separator character in the string. If you are splitting a string at a separator string, use the IndexOf or IndexOfAny method to locate the first character of the separator string. Then use the Compare method to determine whether the characters after that first character are equal to the remaining characters of the separator string.
In addition, if the same set of characters is used to split strings in multiple Split method calls, consider creating a single array and referencing it in each method call. This significantly reduces the additional overhead of each method call.
Examples
The following example demonstrates how to extract individual words from a block of text by treating white space and punctuation marks as delimiters. The character array passed to the separator parameter of the Split(array<Char[]) method consists of a space character and a tab character together with some common punctuation symbols.
Public Class Example
Public Shared Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)
Dim words As String = "This is a list of words, with: a bit of punctuation" + _
vbTab + "and a tab character."
Dim split As String() = words.Split(New [Char]() {" "c, ","c, "."c, ":"c, CChar(vbTab)})
For Each s As String In split
If s.Trim() <> "" Then
outputBlock.Text &= s & vbCrLf
End If
Next s
End Sub 'Main
End Class 'SplitTest
' The example displays the following output:
' This
' is
' a
' list
' of
' words
' with
' a
' bit
' of
' punctuation
' and
' a
' tab
' character
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
Version Information
Silverlight
Supported in: 5, 4, 3
Silverlight for Windows Phone
Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0
XNA Framework
Supported in: Xbox 360, Windows Phone OS 7.0
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.
See Also