String.Split Metódus

Definíció

Egy sztringtömböt ad vissza, amely a jelen példányban található részsztringeket tartalmazza, amelyeket egy megadott sztring vagy Unicode karaktertömb elemei elválasztanak.

Túlterhelések

Name Description
Split(Rune, StringSplitOptions)
Split(String[], Int32, StringSplitOptions)

A sztringeket a megadott elválasztó sztringek és opcionálisan lehetőségek alapján legfeljebb több részsztringre osztja fel.

Split(Rune, Int32, StringSplitOptions)
Split(Char[], Int32, StringSplitOptions)

A sztringeket a megadott elválasztó karakterek és választható beállítások alapján legfeljebb több részsztringre osztja fel.

Split(Char, Int32, StringSplitOptions)

Egy sztringet a megadott karakterelválasztó alapján legfeljebb több részsztringre osztja fel, és opcionálisan kihagyja az eredményből az üres részszúrásokat.

Split(String[], StringSplitOptions)

A sztringeket részsztringekre osztja egy megadott elválasztó sztring és opcionálisan a beállítások alapján.

Split(String, Int32, StringSplitOptions)

A sztringeket egy megadott elválasztó sztring és opcionálisan lehetőségek alapján legfeljebb több részsztringre osztja fel.

Split(Char[], StringSplitOptions)

Sztringeket oszt fel részsztringekre a megadott elválasztó karakterek és beállítások alapján.

Split(Char[], Int32)

A sztringeket a megadott elválasztó karakterek alapján legfeljebb több részsztringre osztja fel.

Split(Char, StringSplitOptions)

Sztringeket oszt fel részsztringekre egy megadott elválasztó karakter és opcionálisan a beállítások alapján.

Split(ReadOnlySpan<Char>)

Sztringeket oszt fel részsztringekre a megadott elválasztó karakterek alapján.

Split(Char[])

Sztringeket oszt fel részsztringekre a megadott elválasztó karakterek alapján.

Split(String, StringSplitOptions)

A megadott sztringelválasztón alapuló sztringeket részszűrésekre osztja fel.

Megjegyzések

Split egy tagolt sztring részsztringekre való felosztására szolgál. Karaktertömb vagy sztringtömb használatával nulla vagy több elválasztó karaktert vagy sztringet adhat meg. Ha nincs megadva elválasztó karakter, a sztring üres szóköz karakterekkel lesz felosztva.

A metódus túlterhelése Split lehetővé teszi a metódus által visszaadott részsztringek számát (a Split(Char[], Int32) metódust), hogy megadhatja, hogy üres sztringeket és/vagy részszúrásokat tartalmazzon-e az eredményben (és Split(Char[], StringSplitOptions)Split(String[], StringSplitOptions) metódusokban), vagy mindkettőt (és Split(Char[], Int32, StringSplitOptions)Split(String[], Int32, StringSplitOptions) metódusokat).

Tip

A Split módszer nem mindig a legjobb módszer arra, hogy a tagolt sztringeket részszűrésekre bontsa. Ha nem szeretné kinyerni egy tagolt sztring összes részsztringét, vagy ha egy sztringet mintán alapuló sztringet szeretne elemezni az elválasztó karakterek készlete helyett, fontolja meg a reguláris kifejezések használatát, vagy kombinálja az egyik olyan keresési módszert, amely egy karakter indexét adja vissza a Substring metódussal. További információ: Részsztringek kinyerése sztringből.

Example

Az alábbi példák három különböző túlterhelést mutatnak a String.Split()-nél. Az első példa a túlterhelést Split(Char[]) hívja meg, és egyetlen elválasztóban halad át.

string s = "You win some. You lose some.";

string[] subs = s.Split(' ');

foreach (var sub in subs)
{
    Console.WriteLine($"Substring: {sub}");
}

// This example produces the following output:
//
// Substring: You
// Substring: win
// Substring: some.
// Substring: You
// Substring: lose
// Substring: some.
let s = "You win some. You lose some."

let subs = s.Split ' '

for sub in subs do
    printfn $"Substring: {sub}"

// This example produces the following output:
//
// Substring: You
// Substring: win
// Substring: some.
// Substring: You
// Substring: lose
// Substring: some.
Dim s As String = "You win some. You lose some."
Dim subs As String() = s.Split()

For Each substring As String In subs
    Console.WriteLine($"Substring: {substring}")
Next

' This example produces the following output:
'
' Substring: You
' Substring: win
' Substring: some.
' Substring: You
' Substring: lose
' Substring: some.

Mint látható, a pont karakterek (.) két részszúrásban szerepelnek. Ha ki szeretné zárni a pont karaktereket, a pont karaktert további elválasztó karakterként is hozzáadhatja. A következő példa bemutatja, hogyan teheti ezt meg.

string s = "You win some. You lose some.";

string[] subs = s.Split(' ', '.');

foreach (var sub in subs)
{
    Console.WriteLine($"Substring: {sub}");
}

// This example produces the following output:
//
// Substring: You
// Substring: win
// Substring: some
// Substring:
// Substring: You
// Substring: lose
// Substring: some
// Substring:
let s = "You win some. You lose some."

let subs = s.Split(' ', '.')

for sub in subs do
    printfn $"Substring: {sub}"

// This example produces the following output:
//
// Substring: You
// Substring: win
// Substring: some
// Substring:
// Substring: You
// Substring: lose
// Substring: some
// Substring:
Dim s As String = "You win some. You lose some."
Dim subs As String() = s.Split(" "c, "."c)

For Each substring As String In subs
    Console.WriteLine($"Substring: {substring}")
Next

' This example produces the following output:
'
' Substring: You
' Substring: win
' Substring: some
' Substring:
' Substring: You
' Substring: lose
' Substring: some
' Substring:

Az időszakok el lettek távolítva az alsztringekből, de most már két további üres részszúrást is belefoglaltak. Ezek az üres részszúrások egy szó és az azt követő időszak közötti részszúrást jelölik. Ha üres részstringeket szeretne kihagyni az eredményül kapott tömbből, meghívhatja a Split(Char[], StringSplitOptions) túlterhelést, és megadhatja StringSplitOptions.RemoveEmptyEntries a options paramétert.

string s = "You win some. You lose some.";
char[] separators = new char[] { ' ', '.' };

string[] subs = s.Split(separators, StringSplitOptions.RemoveEmptyEntries);

foreach (var sub in subs)
{
    Console.WriteLine($"Substring: {sub}");
}

// This example produces the following output:
//
// Substring: You
// Substring: win
// Substring: some
// Substring: You
// Substring: lose
// Substring: some
let s = "You win some. You lose some."
let separators = [| ' '; '.' |]

let subs = s.Split(separators, StringSplitOptions.RemoveEmptyEntries)

for sub in subs do
    printfn $"Substring: {sub}"

// This example produces the following output:
//
// Substring: You
// Substring: win
// Substring: some
// Substring: You
// Substring: lose
// Substring: some
Dim s As String = "You win some. You lose some."
Dim separators As Char() = New Char() {" "c, "."c}
Dim subs As String() = s.Split(separators, StringSplitOptions.RemoveEmptyEntries)

For Each substring As String In subs
    Console.WriteLine($"Substring: {substring}")
Next

' This example produces the following output:
'
' Substring: You
' Substring: win
' Substring: some
' Substring: You
' Substring: lose
' Substring: some

Az egyes túlterhelések szakaszai String.Split() további példákat tartalmaznak.

Split(Rune, StringSplitOptions)

Forrás:
String.Manipulation.cs
public string[] Split(System.Text.Rune separator, StringSplitOptions options = System.StringSplitOptions.None);
member this.Split : System.Text.Rune * StringSplitOptions -> string[]
Public Function Split (separator As Rune, Optional options As StringSplitOptions = System.StringSplitOptions.None) As String()

Paraméterek

separator
Rune

Válaszok

String[]

A következőre érvényes:

Split(String[], Int32, StringSplitOptions)

Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs

A sztringeket a megadott elválasztó sztringek és opcionálisan lehetőségek alapján legfeljebb több részsztringre osztja fel.

public:
 cli::array <System::String ^> ^ Split(cli::array <System::String ^> ^ separator, int count, StringSplitOptions options);
public string[] Split(string[] separator, int count, StringSplitOptions options);
public string[] Split(string[]? separator, int count, StringSplitOptions options);
[System.Runtime.InteropServices.ComVisible(false)]
public string[] Split(string[] separator, int count, StringSplitOptions options);
member this.Split : string[] * int * StringSplitOptions -> string[]
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.Split : string[] * int * StringSplitOptions -> string[]
Public Function Split (separator As String(), count As Integer, options As StringSplitOptions) As String()

Paraméterek

separator
String[]

Az ebben a sztringben lévő részsztringeket elválasztó sztringek, egy üres tömb, amely nem tartalmaz elválasztójeleket, vagy null.

count
Int32

A visszaadandó részsztringek maximális száma.

options
StringSplitOptions

Az enumerálási értékek bitenkénti kombinációja, amely meghatározza, hogy levágja-e az alsztringeket, és üres alsztringeket tartalmaz-e.

Válaszok

String[]

Olyan tömb, amelynek elemei a sztring egy vagy több sztringgel tagolt részsztringjét tartalmazzák a sztringben separator. További információkért lásd a Megjegyzések szakaszt.

Attribútumok

Kivételek

count negatív.

options nem tartozik az StringSplitOptions értékek közé.

Példák

Az alábbi példa az enumerálást használja a StringSplitOptions metódus által létrehozott részstringek belefoglalására vagy kizárására Split .

// This example demonstrates the String.Split() methods that use
// the StringSplitOptions enumeration.

// Example 1: Split a string delimited by characters
Console.WriteLine("1) Split a string delimited by characters:\n");

string s1 = ",ONE,, TWO,, , THREE,,";
char[] charSeparators = new char[] { ',' };
string[] result;

Console.WriteLine($"The original string is: \"{s1}\".");
Console.WriteLine($"The delimiter character is: '{charSeparators[0]}'.\n");

// Split the string and return all elements
Console.WriteLine("1a) Return all elements:");
result = s1.Split(charSeparators, StringSplitOptions.None);
Show(result);

// Split the string and return all elements with whitespace trimmed
Console.WriteLine("1b) Return all elements with whitespace trimmed:");
result = s1.Split(charSeparators, StringSplitOptions.TrimEntries);
Show(result);

// Split the string and return all non-empty elements
Console.WriteLine("1c) Return all non-empty elements:");
result = s1.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries);
Show(result);

// Split the string and return all non-whitespace elements with whitespace trimmed
Console.WriteLine("1d) Return all non-whitespace elements with whitespace trimmed:");
result = s1.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
Show(result);


// Split the string into only two elements, keeping the remainder in the last match
Console.WriteLine("1e) Split into only two elements:");
result = s1.Split(charSeparators, 2, StringSplitOptions.None);
Show(result);

// Split the string into only two elements with whitespace trimmed, keeping the remainder in the last match
Console.WriteLine("1f) Split into only two elements with whitespace trimmed:");
result = s1.Split(charSeparators, 2, StringSplitOptions.TrimEntries);
Show(result);

// Split the string into only two non-empty elements, keeping the remainder in the last match
Console.WriteLine("1g) Split into only two non-empty elements:");
result = s1.Split(charSeparators, 2, StringSplitOptions.RemoveEmptyEntries);
Show(result);

// Split the string into only two non-whitespace elements with whitespace trimmed, keeping the remainder in the last match
Console.WriteLine("1h) Split into only two non-whitespace elements with whitespace trimmed:");
result = s1.Split(charSeparators, 2, StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
Show(result);


// Example 2: Split a string delimited by another string
Console.WriteLine("2) Split a string delimited by another string:\n");

string s2 = "[stop]" +
            "ONE[stop] [stop]" +
            "TWO  [stop][stop]  [stop]" +
            "THREE[stop][stop]  ";
string[] stringSeparators = new string[] { "[stop]" };

Console.WriteLine($"The original string is: \"{s2}\".");
Console.WriteLine($"The delimiter string is: \"{stringSeparators[0]}\".\n");

// Split the string and return all elements
Console.WriteLine("2a) Return all elements:");
result = s2.Split(stringSeparators, StringSplitOptions.None);
Show(result);

// Split the string and return all elements with whitespace trimmed
Console.WriteLine("2b) Return all elements with whitespace trimmed:");
result = s2.Split(stringSeparators, StringSplitOptions.TrimEntries);
Show(result);

// Split the string and return all non-empty elements
Console.WriteLine("2c) Return all non-empty elements:");
result = s2.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries);
Show(result);

// Split the string and return all non-whitespace elements with whitespace trimmed
Console.WriteLine("2d) Return all non-whitespace elements with whitespace trimmed:");
result = s2.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
Show(result);


// Split the string into only two elements, keeping the remainder in the last match
Console.WriteLine("2e) Split into only two elements:");
result = s2.Split(stringSeparators, 2, StringSplitOptions.None);
Show(result);

// Split the string into only two elements with whitespace trimmed, keeping the remainder in the last match
Console.WriteLine("2f) Split into only two elements with whitespace trimmed:");
result = s2.Split(stringSeparators, 2, StringSplitOptions.TrimEntries);
Show(result);

// Split the string into only two non-empty elements, keeping the remainder in the last match
Console.WriteLine("2g) Split into only two non-empty elements:");
result = s2.Split(stringSeparators, 2, StringSplitOptions.RemoveEmptyEntries);
Show(result);

// Split the string into only two non-whitespace elements with whitespace trimmed, keeping the remainder in the last match
Console.WriteLine("2h) Split into only two non-whitespace elements with whitespace trimmed:");
result = s2.Split(stringSeparators, 2, StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
Show(result);


// Display the array of separated strings using a local function
void Show(string[] entries)
{
    Console.WriteLine($"The return value contains these {entries.Length} elements:");
    foreach (string entry in entries)
    {
        Console.Write($"<{entry}>");
    }
    Console.Write("\n\n");
}

/*
This example produces the following results:

1) Split a string delimited by characters:

The original string is: ",ONE,, TWO,, , THREE,,".
The delimiter character is: ','.

1a) Return all elements:
The return value contains these 9 elements:
<><ONE><>< TWO><>< >< THREE><><>

1b) Return all elements with whitespace trimmed:
The return value contains these 9 elements:
<><ONE><><TWO><><><THREE><><>

1c) Return all non-empty elements:
The return value contains these 4 elements:
<ONE>< TWO>< >< THREE>

1d) Return all non-whitespace elements with whitespace trimmed:
The return value contains these 3 elements:
<ONE><TWO><THREE>

1e) Split into only two elements:
The return value contains these 2 elements:
<><ONE,, TWO,, , THREE,,>

1f) Split into only two elements with whitespace trimmed:
The return value contains these 2 elements:
<><ONE,, TWO,, , THREE,,>

1g) Split into only two non-empty elements:
The return value contains these 2 elements:
<ONE>< TWO,, , THREE,,>

1h) Split into only two non-whitespace elements with whitespace trimmed:
The return value contains these 2 elements:
<ONE><TWO,, , THREE,,>

2) Split a string delimited by another string:

The original string is: "[stop]ONE[stop] [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]  ".
The delimiter string is: "[stop]".

2a) Return all elements:
The return value contains these 9 elements:
<><ONE>< ><TWO  ><><  ><THREE><><  >

2b) Return all elements with whitespace trimmed:
The return value contains these 9 elements:
<><ONE><><TWO><><><THREE><><>

2c) Return all non-empty elements:
The return value contains these 6 elements:
<ONE>< ><TWO  ><  ><THREE><  >

2d) Return all non-whitespace elements with whitespace trimmed:
The return value contains these 3 elements:
<ONE><TWO><THREE>

2e) Split into only two elements:
The return value contains these 2 elements:
<><ONE[stop] [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]  >

2f) Split into only two elements with whitespace trimmed:
The return value contains these 2 elements:
<><ONE[stop] [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]>

2g) Split into only two non-empty elements:
The return value contains these 2 elements:
<ONE>< [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]  >

2h) Split into only two non-whitespace elements with whitespace trimmed:
The return value contains these 2 elements:
<ONE><TWO  [stop][stop]  [stop]THREE[stop][stop]>

*/
// This example demonstrates the String.Split() methods that use
// the StringSplitOptions enumeration.

// Display the array of separated strings using a local function
let show  (entries: string[]) =
    printfn $"The return value contains these {entries.Length} elements:"
    for entry in entries do
        printf $"<{entry}>"
    printf "\n\n"

// Example 1: Split a string delimited by characters
printfn "1) Split a string delimited by characters:\n"

let s1 = ",ONE,, TWO,, , THREE,,"
let charSeparators = [| ',' |]

printfn $"The original string is: \"{s1}\"."
printfn $"The delimiter character is: '{charSeparators[0]}'.\n"

// Split the string and return all elements
printfn "1a) Return all elements:"
let result = s1.Split(charSeparators, StringSplitOptions.None)
show result

// Split the string and return all elements with whitespace trimmed
printfn "1b) Return all elements with whitespace trimmed:"
let result = s1.Split(charSeparators, StringSplitOptions.TrimEntries)
show result

// Split the string and return all non-empty elements
printfn "1c) Return all non-empty elements:"
let result = s1.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries)
show result

// Split the string and return all non-whitespace elements with whitespace trimmed
printfn "1d) Return all non-whitespace elements with whitespace trimmed:"
let result = s1.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries ||| StringSplitOptions.TrimEntries)
show result


// Split the string into only two elements, keeping the remainder in the last match
printfn "1e) Split into only two elements:"
let result = s1.Split(charSeparators, 2, StringSplitOptions.None)
show result

// Split the string into only two elements with whitespace trimmed, keeping the remainder in the last match
printfn "1f) Split into only two elements with whitespace trimmed:"
let result = s1.Split(charSeparators, 2, StringSplitOptions.TrimEntries)
show result

// Split the string into only two non-empty elements, keeping the remainder in the last match
printfn "1g) Split into only two non-empty elements:"
let result = s1.Split(charSeparators, 2, StringSplitOptions.RemoveEmptyEntries)
show result

// Split the string into only two non-whitespace elements with whitespace trimmed, keeping the remainder in the last match
printfn "1h) Split into only two non-whitespace elements with whitespace trimmed:"
let result = s1.Split(charSeparators, 2, StringSplitOptions.RemoveEmptyEntries ||| StringSplitOptions.TrimEntries)
show result


// Example 2: Split a string delimited by another string
printfn "2) Split a string delimited by another string:\n"

let s2 = "[stop]" +
            "ONE[stop] [stop]" +
            "TWO  [stop][stop]  [stop]" +
            "THREE[stop][stop]  "
let stringSeparators = [| "[stop]" |]

printfn $"The original string is: \"{s2}\"."
printfn $"The delimiter string is: \"{stringSeparators[0]}\".\n"

// Split the string and return all elements
printfn "2a) Return all elements:"
let result = s2.Split(stringSeparators, StringSplitOptions.None)
show result

// Split the string and return all elements with whitespace trimmed
printfn "2b) Return all elements with whitespace trimmed:"
let result = s2.Split(stringSeparators, StringSplitOptions.TrimEntries)
show result

// Split the string and return all non-empty elements
printfn "2c) Return all non-empty elements:"
let result = s2.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries)
show result

// Split the string and return all non-whitespace elements with whitespace trimmed
printfn "2d) Return all non-whitespace elements with whitespace trimmed:"
let result = s2.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries ||| StringSplitOptions.TrimEntries)
show result


// Split the string into only two elements, keeping the remainder in the last match
printfn "2e) Split into only two elements:"
let result = s2.Split(stringSeparators, 2, StringSplitOptions.None)
show result

// Split the string into only two elements with whitespace trimmed, keeping the remainder in the last match
printfn "2f) Split into only two elements with whitespace trimmed:"
let result = s2.Split(stringSeparators, 2, StringSplitOptions.TrimEntries)
show result

// Split the string into only two non-empty elements, keeping the remainder in the last match
printfn "2g) Split into only two non-empty elements:"
let result = s2.Split(stringSeparators, 2, StringSplitOptions.RemoveEmptyEntries)
show result

// Split the string into only two non-whitespace elements with whitespace trimmed, keeping the remainder in the last match
printfn "2h) Split into only two non-whitespace elements with whitespace trimmed:"
let result = s2.Split(stringSeparators, 2, StringSplitOptions.RemoveEmptyEntries ||| StringSplitOptions.TrimEntries)
show result

(*
This example produces the following results:

1) Split a string delimited by characters:

The original string is: ",ONE,, TWO,, , THREE,,".
The delimiter character is: ','.

1a) Return all elements:
The return value contains these 9 elements:
<><ONE><>< TWO><>< >< THREE><><>

1b) Return all elements with whitespace trimmed:
The return value contains these 9 elements:
<><ONE><><TWO><><><THREE><><>

1c) Return all non-empty elements:
The return value contains these 4 elements:
<ONE>< TWO>< >< THREE>

1d) Return all non-whitespace elements with whitespace trimmed:
The return value contains these 3 elements:
<ONE><TWO><THREE>

1e) Split into only two elements:
The return value contains these 2 elements:
<><ONE,, TWO,, , THREE,,>

1f) Split into only two elements with whitespace trimmed:
The return value contains these 2 elements:
<><ONE,, TWO,, , THREE,,>

1g) Split into only two non-empty elements:
The return value contains these 2 elements:
<ONE>< TWO,, , THREE,,>

1h) Split into only two non-whitespace elements with whitespace trimmed:
The return value contains these 2 elements:
<ONE><TWO,, , THREE,,>

2) Split a string delimited by another string:

The original string is: "[stop]ONE[stop] [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]  ".
The delimiter string is: "[stop]".

2a) Return all elements:
The return value contains these 9 elements:
<><ONE>< ><TWO  ><><  ><THREE><><  >

2b) Return all elements with whitespace trimmed:
The return value contains these 9 elements:
<><ONE><><TWO><><><THREE><><>

2c) Return all non-empty elements:
The return value contains these 6 elements:
<ONE>< ><TWO  ><  ><THREE><  >

2d) Return all non-whitespace elements with whitespace trimmed:
The return value contains these 3 elements:
<ONE><TWO><THREE>

2e) Split into only two elements:
The return value contains these 2 elements:
<><ONE[stop] [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]  >

2f) Split into only two elements with whitespace trimmed:
The return value contains these 2 elements:
<><ONE[stop] [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]>

2g) Split into only two non-empty elements:
The return value contains these 2 elements:
<ONE>< [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]  >

2h) Split into only two non-whitespace elements with whitespace trimmed:
The return value contains these 2 elements:
<ONE><TWO  [stop][stop]  [stop]THREE[stop][stop]>

*)
Public Shared Sub StringSplitOptionsExamples()
    ' This example demonstrates the String.Split() methods that use
    ' the StringSplitOptions enumeration.

    ' Example 1: Split a string delimited by characters
    Console.WriteLine("1) Split a string delimited by characters:" & vbCrLf)

    Dim s1 As String = ",ONE,, TWO,, , THREE,,"
    Dim charSeparators() As Char = {","c}
    Dim result() As String

    Console.WriteLine("The original string is: ""{0}"".", s1)
    Console.WriteLine("The delimiter character is: '{0}'." & vbCrLf, charSeparators(0))

    ' Split the string and return all elements
    Console.WriteLine("1a) Return all elements:")
    result = s1.Split(charSeparators, StringSplitOptions.None)
    Show(result)

    ' Split the string and return all elements with whitespace trimmed
    Console.WriteLine("1b) Return all elements with whitespace trimmed:")
    result = s1.Split(charSeparators, StringSplitOptions.TrimEntries)
    Show(result)

    ' Split the string and return all non-empty elements
    Console.WriteLine("1c) Return all non-empty elements:")
    result = s1.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries)
    Show(result)

    ' Split the string and return all non-whitespace elements with whitespace trimmed
    Console.WriteLine("1d) Return all non-whitespace elements with whitespace trimmed:")
    result = s1.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries Or StringSplitOptions.TrimEntries)
    Show(result)


    ' Split the string into only two elements, keeping the remainder in the last match
    Console.WriteLine("1e) Split into only two elements:")
    result = s1.Split(charSeparators, 2, StringSplitOptions.None)
    Show(result)

    ' Split the string into only two elements with whitespace trimmed, keeping the remainder in the last match
    Console.WriteLine("1f) Split into only two elements with whitespace trimmed:")
    result = s1.Split(charSeparators, 2, StringSplitOptions.TrimEntries)
    Show(result)

    ' Split the string into only two non-empty elements, keeping the remainder in the last match
    Console.WriteLine("1g) Split into only two non-empty elements:")
    result = s1.Split(charSeparators, 2, StringSplitOptions.RemoveEmptyEntries)
    Show(result)

    ' Split the string into only two non-whitespace elements with whitespace trimmed, keeping the remainder in the last match
    Console.WriteLine("1h) Split into only two non-whitespace elements with whitespace trimmed:")
    result = s1.Split(charSeparators, 2, StringSplitOptions.RemoveEmptyEntries Or StringSplitOptions.TrimEntries)
    Show(result)


    ' Example 2: Split a string delimited by another string
    Console.WriteLine("2) Split a string delimited by another string:" & vbCrLf)

    Dim s2 As String = "[stop]" +
                "ONE[stop] [stop]" +
                "TWO  [stop][stop]  [stop]" +
                "THREE[stop][stop]  "
    Dim stringSeparators() As String = {"[stop]"}


    Console.WriteLine("The original string is: ""{0}"".", s2)
    Console.WriteLine("The delimiter string is: ""{0}""." & vbCrLf, stringSeparators(0))

    ' Split the string and return all elements
    Console.WriteLine("2a) Return all elements:")
    result = s2.Split(stringSeparators, StringSplitOptions.None)
    Show(result)

    ' Split the string and return all elements with whitespace trimmed
    Console.WriteLine("2b) Return all elements with whitespace trimmed:")
    result = s2.Split(stringSeparators, StringSplitOptions.TrimEntries)
    Show(result)

    ' Split the string and return all non-empty elements
    Console.WriteLine("2c) Return all non-empty elements:")
    result = s2.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries)
    Show(result)

    ' Split the string and return all non-whitespace elements with whitespace trimmed
    Console.WriteLine("2d) Return all non-whitespace elements with whitespace trimmed:")
    result = s2.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries Or StringSplitOptions.TrimEntries)
    Show(result)


    ' Split the string into only two elements, keeping the remainder in the last match
    Console.WriteLine("2e) Split into only two elements:")
    result = s2.Split(stringSeparators, 2, StringSplitOptions.None)
    Show(result)

    ' Split the string into only two elements with whitespace trimmed, keeping the remainder in the last match
    Console.WriteLine("2f) Split into only two elements with whitespace trimmed:")
    result = s2.Split(stringSeparators, 2, StringSplitOptions.TrimEntries)
    Show(result)

    ' Split the string into only two non-empty elements, keeping the remainder in the last match
    Console.WriteLine("2g) Split into only two non-empty elements:")
    result = s2.Split(stringSeparators, 2, StringSplitOptions.RemoveEmptyEntries)
    Show(result)

    ' Split the string into only two non-whitespace elements with whitespace trimmed, keeping the remainder in the last match
    Console.WriteLine("2h) Split into only two non-whitespace elements with whitespace trimmed:")
    result = s2.Split(stringSeparators, 2, StringSplitOptions.RemoveEmptyEntries Or StringSplitOptions.TrimEntries)
    Show(result)

End Sub

' Display the array of separated strings.
Public Shared Sub Show(ByVal entries() As String)
    Console.WriteLine("The return value contains these {0} elements:", entries.Length)
    Dim entry As String
    For Each entry In entries
        Console.Write("<{0}>", entry)
    Next entry
    Console.Write(vbCrLf & vbCrLf)

End Sub

'This example produces the following results:
'
' 1) Split a string delimited by characters:
'
' The original string is: ",ONE,, TWO,, , THREE,,".
' The delimiter character is: ','.
'
' 1a) Return all elements:
' The return value contains these 9 elements:
' <><ONE><>< TWO><>< >< THREE><><>
'
' 1b) Return all elements with whitespace trimmed:
' The return value contains these 9 elements:
' <><ONE><><TWO><><><THREE><><>
'
' 1c) Return all non-empty elements:
' The return value contains these 4 elements:
' <ONE>< TWO>< >< THREE>
'
' 1d) Return all non-whitespace elements with whitespace trimmed:
' The return value contains these 3 elements:
' <ONE><TWO><THREE>
'
' 1e) Split into only two elements:
' The return value contains these 2 elements:
' <><ONE,, TWO,, , THREE,,>
'
' 1f) Split into only two elements with whitespace trimmed:
' The return value contains these 2 elements:
' <><ONE,, TWO,, , THREE,,>
'
' 1g) Split into only two non-empty elements:
' The return value contains these 2 elements:
' <ONE>< TWO,, , THREE,,>
'
' 1h) Split into only two non-whitespace elements with whitespace trimmed:
' The return value contains these 2 elements:
' <ONE><TWO,, , THREE,,>
'
' 2) Split a string delimited by another string:
'
' The original string is: "[stop]ONE[stop] [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]  ".
' The delimiter string is: "[stop]".
'
' 2a) Return all elements:
' The return value contains these 9 elements:
' <><ONE>< ><TWO  ><><  ><THREE><><  >
'
' 2b) Return all elements with whitespace trimmed:
' The return value contains these 9 elements:
' <><ONE><><TWO><><><THREE><><>
'
' 2c) Return all non-empty elements:
' The return value contains these 6 elements:
' <ONE>< ><TWO  ><  ><THREE><  >
'
' 2d) Return all non-whitespace elements with whitespace trimmed:
' The return value contains these 3 elements:
' <ONE><TWO><THREE>
'
' 2e) Split into only two elements:
' The return value contains these 2 elements:
' <><ONE[stop] [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]  >
'
' 2f) Split into only two elements with whitespace trimmed:
' The return value contains these 2 elements:
' <><ONE[stop] [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]>
'
' 2g) Split into only two non-empty elements:
' The return value contains these 2 elements:
' <ONE>< [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]  >
'
' 2h) Split into only two non-whitespace elements with whitespace trimmed:
' The return value contains these 2 elements:
' <ONE><TWO  [stop][stop]  [stop]THREE[stop][stop]>
'

Megjegyzések

A határoló sztringek nem szerepelnek a visszaadott tömb elemeiben.

Ha ez a példány nem tartalmazza a sztringek separatoregyikét sem, vagy a count paraméter 1, a visszaadott tömb egyetlen elemből áll, amely tartalmazza ezt a példányt.

Ha a separator paraméter nem tartalmaz vagy nem null tartalmaz karaktereket, akkor a rendszer a szóköz karaktereket elválasztó karakternek tekinti. A szóköz karaktereket a Unicode szabvány határozza meg, és a Char.IsWhiteSpace metódus visszaadja true őket, ha átadják őket.

A paraméter átadásához nullstring[] separator meg kell adnia a hívás más null túlterhelésekből ( például Split(Char[], Int32, StringSplitOptions). Az alábbi példa számos módszert mutat be a túlterhelés egyértelmű azonosítására.

string phrase = "The quick  brown fox";

_ = phrase.Split(default(string[]), 3, StringSplitOptions.RemoveEmptyEntries);

_ = phrase.Split((string[]?)null, 3, StringSplitOptions.RemoveEmptyEntries);

_ = phrase.Split(null as string[], 3, StringSplitOptions.RemoveEmptyEntries);
let phrase = "The quick  brown fox"

phrase.Split(Unchecked.defaultof<string[]>, 3, StringSplitOptions.RemoveEmptyEntries) |> ignore

phrase.Split(null :> string[], 3, StringSplitOptions.RemoveEmptyEntries) |> ignore

phrase.Split((null: string[]), 3, StringSplitOptions.RemoveEmptyEntries) |> ignore
Dim phrase As String = "The quick brown fox"
Dim words() As String

words = phrase.Split(TryCast(Nothing, String()), 3,
                       StringSplitOptions.RemoveEmptyEntries)

words = phrase.Split(New String() {}, 3,
                     StringSplitOptions.RemoveEmptyEntries)

Ha a count paraméter nulla, vagy a options paraméter és RemoveEmptyEntries a példány hossza nulla, a függvény egy üres tömböt ad vissza.

Minden elem separator külön elválasztójelet határoz meg, amely egy vagy több karakterből áll. Ha a options paraméter , Noneés két elválasztó van egymás mellett, vagy a példány elején vagy végén egy elválasztó található, a megfelelő tömbelem tartalmaz Empty.

Ha ebben a példányban több count részszúrás is van, az első count mínusz 1 részszűrést a rendszer a visszatérési érték első count mínusz 1 elemében adja vissza, a példány többi karakterét pedig a visszatérési érték utolsó elemében adja vissza.

Ha count nagyobb, mint az alsztringek száma, a rendszer visszaadja a rendelkezésre álló részszűrések számát, és a rendszer nem ad kivételt.

Az elválasztó tömb

Ha az elemek separator bármelyike több karakterből áll, a teljes részszűkítés elválasztónak minősül. Ha például a "10" elem egyik eleme separator , a "This10is10a10string" sztring felosztására tett kísérlet ezt a négyelemű tömböt adja vissza: { "Ez", "is", "a", "string". }.

Összehasonlítás részletei

A Split metódus kinyeri az ebben a sztringben separator lévő részsztringeket, amelyeket a paraméter egy vagy több sztringje elválaszt, és ezeket az alsztringeket tömb elemeiként adja vissza.

A Split metódus a kis- és nagybetűket megkülönböztető rendezési szabályokkal végzett összehasonlítások végrehajtásával keresi a határolójeleket. A szavak, sztringek és sorszámok rendezéséről további információt az System.Globalization.CompareOptions enumerálásban talál.

A Split metódus figyelmen kívül hagyja annak bármely elemét separator , amelynek az értéke vagy null az üres sztring ("").

A nem egyértelmű eredmények elkerülése érdekében, ha a sztringekben separator közös karakterek vannak, a metódus a Split példány értékének elejétől a végéig halad, és megegyezik a példány elválasztó elemével egyenlő első elemével separator . A példányban az alsztringek előfordulási sorrendje elsőbbséget élvez az elemek sorrendjében a példányban separator.

Vegyük például azt a példányt, amelynek értéke "abcdef". Ha az első elem az separator "ef" volt, a második pedig "bcde", akkor a felosztási művelet eredménye "a" és "f" lesz. Ennek az az oka, hogy a példányban a "bcde" alsztring megjelenik, és megegyezik az "f" alsztring előtti elemekkel separator .

Ha azonban az első elem separator a "bcd" volt, a második pedig "bc", akkor a felosztási művelet eredménye "a" és "ef" lesz. Ennek az az oka, hogy a "bcd" az első elválasztó separator , amely megegyezik a példány elválasztójelével. Ha az elválasztók sorrendje megfordítva lett, így az első elem "bc" volt, a második elem pedig "bcd", akkor az eredmény "a" és "def" lesz.

Teljesítménnyel kapcsolatos szempontok

A Split metódusok memóriát foglalnak le a visszaadott tömbobjektumhoz és egy String objektumhoz minden tömbelemhez. Ha az alkalmazás optimális teljesítményt igényel, vagy ha a memóriafoglalás kezelése kritikus fontosságú az alkalmazásban, fontolja meg a IndexOf metódus vagy IndexOfAny metódus használatát, és opcionálisan a Compare metódust, hogy megkeressen egy sztringen belüli alsztringet.

Ha elválaszt egy sztringet egy elválasztó karakternél, az elválasztó karaktert a vagy IndexOf a IndexOfAny metódussal keresheti meg a sztringben. Ha elválaszt egy sztringet egy elválasztó sztringnél, az elválasztó sztring első karakterének megkereséséhez használja a IndexOf vagy IndexOfAny a metódust. Ezután a Compare metódus használatával állapítsa meg, hogy az első karakter utáni karakterek megegyeznek-e az elválasztó sztring többi karakterével.

Emellett, ha ugyanazt a karakterkészletet használja a sztringek több Split metódushívásban való felosztására, érdemes lehet egyetlen tömböt létrehozni, és hivatkozni rá minden metódushívásban. Ez jelentősen csökkenti az egyes metódushívások többletterhelését.

Megjegyzések a hívókhoz

A .NET Framework 3.5-ös és korábbi verzióiban, ha a metódus egy < vagy nem tartalmaz karaktereket, a metódus a sztring felosztásához kissé eltérő szóköz karaktereket használ, mint a metódus a sztring levágásához. A .NET Framework 4-től kezdve mindkét metódus azonos Unicode-szóköz karakterkészletet használ.

A következőre érvényes:

Split(Rune, Int32, StringSplitOptions)

Forrás:
String.Manipulation.cs
public string[] Split(System.Text.Rune separator, int count, StringSplitOptions options = System.StringSplitOptions.None);
member this.Split : System.Text.Rune * int * StringSplitOptions -> string[]
Public Function Split (separator As Rune, count As Integer, Optional options As StringSplitOptions = System.StringSplitOptions.None) As String()

Paraméterek

separator
Rune
count
Int32

Válaszok

String[]

A következőre érvényes:

Split(Char[], Int32, StringSplitOptions)

Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs

A sztringeket a megadott elválasztó karakterek és választható beállítások alapján legfeljebb több részsztringre osztja fel.

public:
 cli::array <System::String ^> ^ Split(cli::array <char> ^ separator, int count, StringSplitOptions options);
public string[] Split(char[] separator, int count, StringSplitOptions options);
public string[] Split(char[]? separator, int count, StringSplitOptions options);
[System.Runtime.InteropServices.ComVisible(false)]
public string[] Split(char[] separator, int count, StringSplitOptions options);
member this.Split : char[] * int * StringSplitOptions -> string[]
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.Split : char[] * int * StringSplitOptions -> string[]
Public Function Split (separator As Char(), count As Integer, options As StringSplitOptions) As String()

Paraméterek

separator
Char[]

A sztringben lévő részsztringeket elválasztó karakterek tömbje, egy üres tömb, amely nem tartalmaz elválasztójeleket, vagy null.

count
Int32

A visszaadandó részsztringek maximális száma.

options
StringSplitOptions

Az enumerálási értékek bitenkénti kombinációja, amely meghatározza, hogy levágja-e az alsztringeket, és üres alsztringeket tartalmaz-e.

Válaszok

String[]

Olyan tömb, amely a sztringben szereplő részsztringeket tartalmazza, amelyek egy vagy több karakterrel vannak elválasztva a karakterláncban separator. További információkért lásd a Megjegyzések szakaszt.

Attribútumok

Kivételek

count negatív.

options nem tartozik az StringSplitOptions értékek közé.

Példák

Az alábbi példa az enumerálást használja a StringSplitOptions metódus által létrehozott részstringek belefoglalására vagy kizárására Split .

// This example demonstrates the String.Split() methods that use
// the StringSplitOptions enumeration.

// Example 1: Split a string delimited by characters
Console.WriteLine("1) Split a string delimited by characters:\n");

string s1 = ",ONE,, TWO,, , THREE,,";
char[] charSeparators = new char[] { ',' };
string[] result;

Console.WriteLine($"The original string is: \"{s1}\".");
Console.WriteLine($"The delimiter character is: '{charSeparators[0]}'.\n");

// Split the string and return all elements
Console.WriteLine("1a) Return all elements:");
result = s1.Split(charSeparators, StringSplitOptions.None);
Show(result);

// Split the string and return all elements with whitespace trimmed
Console.WriteLine("1b) Return all elements with whitespace trimmed:");
result = s1.Split(charSeparators, StringSplitOptions.TrimEntries);
Show(result);

// Split the string and return all non-empty elements
Console.WriteLine("1c) Return all non-empty elements:");
result = s1.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries);
Show(result);

// Split the string and return all non-whitespace elements with whitespace trimmed
Console.WriteLine("1d) Return all non-whitespace elements with whitespace trimmed:");
result = s1.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
Show(result);


// Split the string into only two elements, keeping the remainder in the last match
Console.WriteLine("1e) Split into only two elements:");
result = s1.Split(charSeparators, 2, StringSplitOptions.None);
Show(result);

// Split the string into only two elements with whitespace trimmed, keeping the remainder in the last match
Console.WriteLine("1f) Split into only two elements with whitespace trimmed:");
result = s1.Split(charSeparators, 2, StringSplitOptions.TrimEntries);
Show(result);

// Split the string into only two non-empty elements, keeping the remainder in the last match
Console.WriteLine("1g) Split into only two non-empty elements:");
result = s1.Split(charSeparators, 2, StringSplitOptions.RemoveEmptyEntries);
Show(result);

// Split the string into only two non-whitespace elements with whitespace trimmed, keeping the remainder in the last match
Console.WriteLine("1h) Split into only two non-whitespace elements with whitespace trimmed:");
result = s1.Split(charSeparators, 2, StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
Show(result);


// Example 2: Split a string delimited by another string
Console.WriteLine("2) Split a string delimited by another string:\n");

string s2 = "[stop]" +
            "ONE[stop] [stop]" +
            "TWO  [stop][stop]  [stop]" +
            "THREE[stop][stop]  ";
string[] stringSeparators = new string[] { "[stop]" };

Console.WriteLine($"The original string is: \"{s2}\".");
Console.WriteLine($"The delimiter string is: \"{stringSeparators[0]}\".\n");

// Split the string and return all elements
Console.WriteLine("2a) Return all elements:");
result = s2.Split(stringSeparators, StringSplitOptions.None);
Show(result);

// Split the string and return all elements with whitespace trimmed
Console.WriteLine("2b) Return all elements with whitespace trimmed:");
result = s2.Split(stringSeparators, StringSplitOptions.TrimEntries);
Show(result);

// Split the string and return all non-empty elements
Console.WriteLine("2c) Return all non-empty elements:");
result = s2.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries);
Show(result);

// Split the string and return all non-whitespace elements with whitespace trimmed
Console.WriteLine("2d) Return all non-whitespace elements with whitespace trimmed:");
result = s2.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
Show(result);


// Split the string into only two elements, keeping the remainder in the last match
Console.WriteLine("2e) Split into only two elements:");
result = s2.Split(stringSeparators, 2, StringSplitOptions.None);
Show(result);

// Split the string into only two elements with whitespace trimmed, keeping the remainder in the last match
Console.WriteLine("2f) Split into only two elements with whitespace trimmed:");
result = s2.Split(stringSeparators, 2, StringSplitOptions.TrimEntries);
Show(result);

// Split the string into only two non-empty elements, keeping the remainder in the last match
Console.WriteLine("2g) Split into only two non-empty elements:");
result = s2.Split(stringSeparators, 2, StringSplitOptions.RemoveEmptyEntries);
Show(result);

// Split the string into only two non-whitespace elements with whitespace trimmed, keeping the remainder in the last match
Console.WriteLine("2h) Split into only two non-whitespace elements with whitespace trimmed:");
result = s2.Split(stringSeparators, 2, StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
Show(result);


// Display the array of separated strings using a local function
void Show(string[] entries)
{
    Console.WriteLine($"The return value contains these {entries.Length} elements:");
    foreach (string entry in entries)
    {
        Console.Write($"<{entry}>");
    }
    Console.Write("\n\n");
}

/*
This example produces the following results:

1) Split a string delimited by characters:

The original string is: ",ONE,, TWO,, , THREE,,".
The delimiter character is: ','.

1a) Return all elements:
The return value contains these 9 elements:
<><ONE><>< TWO><>< >< THREE><><>

1b) Return all elements with whitespace trimmed:
The return value contains these 9 elements:
<><ONE><><TWO><><><THREE><><>

1c) Return all non-empty elements:
The return value contains these 4 elements:
<ONE>< TWO>< >< THREE>

1d) Return all non-whitespace elements with whitespace trimmed:
The return value contains these 3 elements:
<ONE><TWO><THREE>

1e) Split into only two elements:
The return value contains these 2 elements:
<><ONE,, TWO,, , THREE,,>

1f) Split into only two elements with whitespace trimmed:
The return value contains these 2 elements:
<><ONE,, TWO,, , THREE,,>

1g) Split into only two non-empty elements:
The return value contains these 2 elements:
<ONE>< TWO,, , THREE,,>

1h) Split into only two non-whitespace elements with whitespace trimmed:
The return value contains these 2 elements:
<ONE><TWO,, , THREE,,>

2) Split a string delimited by another string:

The original string is: "[stop]ONE[stop] [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]  ".
The delimiter string is: "[stop]".

2a) Return all elements:
The return value contains these 9 elements:
<><ONE>< ><TWO  ><><  ><THREE><><  >

2b) Return all elements with whitespace trimmed:
The return value contains these 9 elements:
<><ONE><><TWO><><><THREE><><>

2c) Return all non-empty elements:
The return value contains these 6 elements:
<ONE>< ><TWO  ><  ><THREE><  >

2d) Return all non-whitespace elements with whitespace trimmed:
The return value contains these 3 elements:
<ONE><TWO><THREE>

2e) Split into only two elements:
The return value contains these 2 elements:
<><ONE[stop] [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]  >

2f) Split into only two elements with whitespace trimmed:
The return value contains these 2 elements:
<><ONE[stop] [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]>

2g) Split into only two non-empty elements:
The return value contains these 2 elements:
<ONE>< [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]  >

2h) Split into only two non-whitespace elements with whitespace trimmed:
The return value contains these 2 elements:
<ONE><TWO  [stop][stop]  [stop]THREE[stop][stop]>

*/
// This example demonstrates the String.Split() methods that use
// the StringSplitOptions enumeration.

// Display the array of separated strings using a local function
let show  (entries: string[]) =
    printfn $"The return value contains these {entries.Length} elements:"
    for entry in entries do
        printf $"<{entry}>"
    printf "\n\n"

// Example 1: Split a string delimited by characters
printfn "1) Split a string delimited by characters:\n"

let s1 = ",ONE,, TWO,, , THREE,,"
let charSeparators = [| ',' |]

printfn $"The original string is: \"{s1}\"."
printfn $"The delimiter character is: '{charSeparators[0]}'.\n"

// Split the string and return all elements
printfn "1a) Return all elements:"
let result = s1.Split(charSeparators, StringSplitOptions.None)
show result

// Split the string and return all elements with whitespace trimmed
printfn "1b) Return all elements with whitespace trimmed:"
let result = s1.Split(charSeparators, StringSplitOptions.TrimEntries)
show result

// Split the string and return all non-empty elements
printfn "1c) Return all non-empty elements:"
let result = s1.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries)
show result

// Split the string and return all non-whitespace elements with whitespace trimmed
printfn "1d) Return all non-whitespace elements with whitespace trimmed:"
let result = s1.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries ||| StringSplitOptions.TrimEntries)
show result


// Split the string into only two elements, keeping the remainder in the last match
printfn "1e) Split into only two elements:"
let result = s1.Split(charSeparators, 2, StringSplitOptions.None)
show result

// Split the string into only two elements with whitespace trimmed, keeping the remainder in the last match
printfn "1f) Split into only two elements with whitespace trimmed:"
let result = s1.Split(charSeparators, 2, StringSplitOptions.TrimEntries)
show result

// Split the string into only two non-empty elements, keeping the remainder in the last match
printfn "1g) Split into only two non-empty elements:"
let result = s1.Split(charSeparators, 2, StringSplitOptions.RemoveEmptyEntries)
show result

// Split the string into only two non-whitespace elements with whitespace trimmed, keeping the remainder in the last match
printfn "1h) Split into only two non-whitespace elements with whitespace trimmed:"
let result = s1.Split(charSeparators, 2, StringSplitOptions.RemoveEmptyEntries ||| StringSplitOptions.TrimEntries)
show result


// Example 2: Split a string delimited by another string
printfn "2) Split a string delimited by another string:\n"

let s2 = "[stop]" +
            "ONE[stop] [stop]" +
            "TWO  [stop][stop]  [stop]" +
            "THREE[stop][stop]  "
let stringSeparators = [| "[stop]" |]

printfn $"The original string is: \"{s2}\"."
printfn $"The delimiter string is: \"{stringSeparators[0]}\".\n"

// Split the string and return all elements
printfn "2a) Return all elements:"
let result = s2.Split(stringSeparators, StringSplitOptions.None)
show result

// Split the string and return all elements with whitespace trimmed
printfn "2b) Return all elements with whitespace trimmed:"
let result = s2.Split(stringSeparators, StringSplitOptions.TrimEntries)
show result

// Split the string and return all non-empty elements
printfn "2c) Return all non-empty elements:"
let result = s2.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries)
show result

// Split the string and return all non-whitespace elements with whitespace trimmed
printfn "2d) Return all non-whitespace elements with whitespace trimmed:"
let result = s2.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries ||| StringSplitOptions.TrimEntries)
show result


// Split the string into only two elements, keeping the remainder in the last match
printfn "2e) Split into only two elements:"
let result = s2.Split(stringSeparators, 2, StringSplitOptions.None)
show result

// Split the string into only two elements with whitespace trimmed, keeping the remainder in the last match
printfn "2f) Split into only two elements with whitespace trimmed:"
let result = s2.Split(stringSeparators, 2, StringSplitOptions.TrimEntries)
show result

// Split the string into only two non-empty elements, keeping the remainder in the last match
printfn "2g) Split into only two non-empty elements:"
let result = s2.Split(stringSeparators, 2, StringSplitOptions.RemoveEmptyEntries)
show result

// Split the string into only two non-whitespace elements with whitespace trimmed, keeping the remainder in the last match
printfn "2h) Split into only two non-whitespace elements with whitespace trimmed:"
let result = s2.Split(stringSeparators, 2, StringSplitOptions.RemoveEmptyEntries ||| StringSplitOptions.TrimEntries)
show result

(*
This example produces the following results:

1) Split a string delimited by characters:

The original string is: ",ONE,, TWO,, , THREE,,".
The delimiter character is: ','.

1a) Return all elements:
The return value contains these 9 elements:
<><ONE><>< TWO><>< >< THREE><><>

1b) Return all elements with whitespace trimmed:
The return value contains these 9 elements:
<><ONE><><TWO><><><THREE><><>

1c) Return all non-empty elements:
The return value contains these 4 elements:
<ONE>< TWO>< >< THREE>

1d) Return all non-whitespace elements with whitespace trimmed:
The return value contains these 3 elements:
<ONE><TWO><THREE>

1e) Split into only two elements:
The return value contains these 2 elements:
<><ONE,, TWO,, , THREE,,>

1f) Split into only two elements with whitespace trimmed:
The return value contains these 2 elements:
<><ONE,, TWO,, , THREE,,>

1g) Split into only two non-empty elements:
The return value contains these 2 elements:
<ONE>< TWO,, , THREE,,>

1h) Split into only two non-whitespace elements with whitespace trimmed:
The return value contains these 2 elements:
<ONE><TWO,, , THREE,,>

2) Split a string delimited by another string:

The original string is: "[stop]ONE[stop] [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]  ".
The delimiter string is: "[stop]".

2a) Return all elements:
The return value contains these 9 elements:
<><ONE>< ><TWO  ><><  ><THREE><><  >

2b) Return all elements with whitespace trimmed:
The return value contains these 9 elements:
<><ONE><><TWO><><><THREE><><>

2c) Return all non-empty elements:
The return value contains these 6 elements:
<ONE>< ><TWO  ><  ><THREE><  >

2d) Return all non-whitespace elements with whitespace trimmed:
The return value contains these 3 elements:
<ONE><TWO><THREE>

2e) Split into only two elements:
The return value contains these 2 elements:
<><ONE[stop] [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]  >

2f) Split into only two elements with whitespace trimmed:
The return value contains these 2 elements:
<><ONE[stop] [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]>

2g) Split into only two non-empty elements:
The return value contains these 2 elements:
<ONE>< [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]  >

2h) Split into only two non-whitespace elements with whitespace trimmed:
The return value contains these 2 elements:
<ONE><TWO  [stop][stop]  [stop]THREE[stop][stop]>

*)
Public Shared Sub StringSplitOptionsExamples()
    ' This example demonstrates the String.Split() methods that use
    ' the StringSplitOptions enumeration.

    ' Example 1: Split a string delimited by characters
    Console.WriteLine("1) Split a string delimited by characters:" & vbCrLf)

    Dim s1 As String = ",ONE,, TWO,, , THREE,,"
    Dim charSeparators() As Char = {","c}
    Dim result() As String

    Console.WriteLine("The original string is: ""{0}"".", s1)
    Console.WriteLine("The delimiter character is: '{0}'." & vbCrLf, charSeparators(0))

    ' Split the string and return all elements
    Console.WriteLine("1a) Return all elements:")
    result = s1.Split(charSeparators, StringSplitOptions.None)
    Show(result)

    ' Split the string and return all elements with whitespace trimmed
    Console.WriteLine("1b) Return all elements with whitespace trimmed:")
    result = s1.Split(charSeparators, StringSplitOptions.TrimEntries)
    Show(result)

    ' Split the string and return all non-empty elements
    Console.WriteLine("1c) Return all non-empty elements:")
    result = s1.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries)
    Show(result)

    ' Split the string and return all non-whitespace elements with whitespace trimmed
    Console.WriteLine("1d) Return all non-whitespace elements with whitespace trimmed:")
    result = s1.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries Or StringSplitOptions.TrimEntries)
    Show(result)


    ' Split the string into only two elements, keeping the remainder in the last match
    Console.WriteLine("1e) Split into only two elements:")
    result = s1.Split(charSeparators, 2, StringSplitOptions.None)
    Show(result)

    ' Split the string into only two elements with whitespace trimmed, keeping the remainder in the last match
    Console.WriteLine("1f) Split into only two elements with whitespace trimmed:")
    result = s1.Split(charSeparators, 2, StringSplitOptions.TrimEntries)
    Show(result)

    ' Split the string into only two non-empty elements, keeping the remainder in the last match
    Console.WriteLine("1g) Split into only two non-empty elements:")
    result = s1.Split(charSeparators, 2, StringSplitOptions.RemoveEmptyEntries)
    Show(result)

    ' Split the string into only two non-whitespace elements with whitespace trimmed, keeping the remainder in the last match
    Console.WriteLine("1h) Split into only two non-whitespace elements with whitespace trimmed:")
    result = s1.Split(charSeparators, 2, StringSplitOptions.RemoveEmptyEntries Or StringSplitOptions.TrimEntries)
    Show(result)


    ' Example 2: Split a string delimited by another string
    Console.WriteLine("2) Split a string delimited by another string:" & vbCrLf)

    Dim s2 As String = "[stop]" +
                "ONE[stop] [stop]" +
                "TWO  [stop][stop]  [stop]" +
                "THREE[stop][stop]  "
    Dim stringSeparators() As String = {"[stop]"}


    Console.WriteLine("The original string is: ""{0}"".", s2)
    Console.WriteLine("The delimiter string is: ""{0}""." & vbCrLf, stringSeparators(0))

    ' Split the string and return all elements
    Console.WriteLine("2a) Return all elements:")
    result = s2.Split(stringSeparators, StringSplitOptions.None)
    Show(result)

    ' Split the string and return all elements with whitespace trimmed
    Console.WriteLine("2b) Return all elements with whitespace trimmed:")
    result = s2.Split(stringSeparators, StringSplitOptions.TrimEntries)
    Show(result)

    ' Split the string and return all non-empty elements
    Console.WriteLine("2c) Return all non-empty elements:")
    result = s2.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries)
    Show(result)

    ' Split the string and return all non-whitespace elements with whitespace trimmed
    Console.WriteLine("2d) Return all non-whitespace elements with whitespace trimmed:")
    result = s2.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries Or StringSplitOptions.TrimEntries)
    Show(result)


    ' Split the string into only two elements, keeping the remainder in the last match
    Console.WriteLine("2e) Split into only two elements:")
    result = s2.Split(stringSeparators, 2, StringSplitOptions.None)
    Show(result)

    ' Split the string into only two elements with whitespace trimmed, keeping the remainder in the last match
    Console.WriteLine("2f) Split into only two elements with whitespace trimmed:")
    result = s2.Split(stringSeparators, 2, StringSplitOptions.TrimEntries)
    Show(result)

    ' Split the string into only two non-empty elements, keeping the remainder in the last match
    Console.WriteLine("2g) Split into only two non-empty elements:")
    result = s2.Split(stringSeparators, 2, StringSplitOptions.RemoveEmptyEntries)
    Show(result)

    ' Split the string into only two non-whitespace elements with whitespace trimmed, keeping the remainder in the last match
    Console.WriteLine("2h) Split into only two non-whitespace elements with whitespace trimmed:")
    result = s2.Split(stringSeparators, 2, StringSplitOptions.RemoveEmptyEntries Or StringSplitOptions.TrimEntries)
    Show(result)

End Sub

' Display the array of separated strings.
Public Shared Sub Show(ByVal entries() As String)
    Console.WriteLine("The return value contains these {0} elements:", entries.Length)
    Dim entry As String
    For Each entry In entries
        Console.Write("<{0}>", entry)
    Next entry
    Console.Write(vbCrLf & vbCrLf)

End Sub

'This example produces the following results:
'
' 1) Split a string delimited by characters:
'
' The original string is: ",ONE,, TWO,, , THREE,,".
' The delimiter character is: ','.
'
' 1a) Return all elements:
' The return value contains these 9 elements:
' <><ONE><>< TWO><>< >< THREE><><>
'
' 1b) Return all elements with whitespace trimmed:
' The return value contains these 9 elements:
' <><ONE><><TWO><><><THREE><><>
'
' 1c) Return all non-empty elements:
' The return value contains these 4 elements:
' <ONE>< TWO>< >< THREE>
'
' 1d) Return all non-whitespace elements with whitespace trimmed:
' The return value contains these 3 elements:
' <ONE><TWO><THREE>
'
' 1e) Split into only two elements:
' The return value contains these 2 elements:
' <><ONE,, TWO,, , THREE,,>
'
' 1f) Split into only two elements with whitespace trimmed:
' The return value contains these 2 elements:
' <><ONE,, TWO,, , THREE,,>
'
' 1g) Split into only two non-empty elements:
' The return value contains these 2 elements:
' <ONE>< TWO,, , THREE,,>
'
' 1h) Split into only two non-whitespace elements with whitespace trimmed:
' The return value contains these 2 elements:
' <ONE><TWO,, , THREE,,>
'
' 2) Split a string delimited by another string:
'
' The original string is: "[stop]ONE[stop] [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]  ".
' The delimiter string is: "[stop]".
'
' 2a) Return all elements:
' The return value contains these 9 elements:
' <><ONE>< ><TWO  ><><  ><THREE><><  >
'
' 2b) Return all elements with whitespace trimmed:
' The return value contains these 9 elements:
' <><ONE><><TWO><><><THREE><><>
'
' 2c) Return all non-empty elements:
' The return value contains these 6 elements:
' <ONE>< ><TWO  ><  ><THREE><  >
'
' 2d) Return all non-whitespace elements with whitespace trimmed:
' The return value contains these 3 elements:
' <ONE><TWO><THREE>
'
' 2e) Split into only two elements:
' The return value contains these 2 elements:
' <><ONE[stop] [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]  >
'
' 2f) Split into only two elements with whitespace trimmed:
' The return value contains these 2 elements:
' <><ONE[stop] [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]>
'
' 2g) Split into only two non-empty elements:
' The return value contains these 2 elements:
' <ONE>< [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]  >
'
' 2h) Split into only two non-whitespace elements with whitespace trimmed:
' The return value contains these 2 elements:
' <ONE><TWO  [stop][stop]  [stop]THREE[stop][stop]>
'

Megjegyzések

A visszaküldött tömb elemei nem tartalmaznak elválasztó karaktereket.

Ha ez a példány nem tartalmazza a karakterek separatoregyikét sem, vagy a count paraméter 1, a visszaadott tömb egyetlen elemből áll, amely tartalmazza ezt a példányt.

Ha a separator paraméter nem tartalmaz vagy nem null tartalmaz karaktereket, akkor a rendszer a szóköz karaktereket elválasztó karakternek tekinti. A szóköz karaktereket a Unicode szabvány határozza meg, és a Char.IsWhiteSpace metódus visszaadja true őket, ha átadják őket.

A paraméter átadásához nullchar[] separator meg kell adnia a hívás más null túlterhelésekből ( például Split(String[], Int32, StringSplitOptions). Az alábbi példa számos módszert mutat be a túlterhelés egyértelmű azonosítására.

string phrase = "The quick  brown fox";

_ = phrase.Split(default(char[]), 3, StringSplitOptions.RemoveEmptyEntries);

_ = phrase.Split((char[]?)null, 3, StringSplitOptions.RemoveEmptyEntries);

_ = phrase.Split(null as char[], 3, StringSplitOptions.RemoveEmptyEntries);
let phrase = "The quick  brown fox"

phrase.Split(Unchecked.defaultof<char[]>, 3, StringSplitOptions.RemoveEmptyEntries) |> ignore

phrase.Split(null :> char[], 3, StringSplitOptions.RemoveEmptyEntries) |> ignore

phrase.Split((null: char[]), 3, StringSplitOptions.RemoveEmptyEntries) |> ignore
Dim phrase As String = "The quick brown fox"
Dim words() As String

words = phrase.Split(TryCast(Nothing, Char()), 3,
                       StringSplitOptions.RemoveEmptyEntries)

words = phrase.Split(New Char() {}, 3,
                     StringSplitOptions.RemoveEmptyEntries)

Ha a count paraméter nulla, vagy a options paraméter és RemoveEmptyEntries a példány hossza nulla, a függvény egy üres tömböt ad vissza.

Az egyes elemek separator külön elválasztó karaktert határoznak meg. Ha a options paraméter , Noneés két elválasztó van egymás mellett, vagy a példány elején vagy végén egy elválasztó található, a megfelelő tömbelem tartalmaz Empty.

Ha ebben a példányban több count részszúrás is van, az első count mínusz 1 részszűrést a rendszer a visszatérési érték első count mínusz 1 elemében adja vissza, a példány többi karakterét pedig a visszatérési érték utolsó elemében adja vissza.

Ha count nagyobb, mint az alsztringek száma, a rendszer visszaadja a rendelkezésre álló részszűrések számát, és a rendszer nem ad kivételt.

Teljesítménnyel kapcsolatos szempontok

A Split metódusok memóriát foglalnak le a visszaadott tömbobjektumhoz és egy String objektumhoz minden tömbelemhez. Ha az alkalmazás optimális teljesítményt igényel, vagy ha a memóriafoglalás kezelése kritikus fontosságú az alkalmazásban, fontolja meg a IndexOf metódus vagy IndexOfAny metódus használatát, és opcionálisan a Compare metódust, hogy megkeressen egy sztringen belüli alsztringet.

Ha elválaszt egy sztringet egy elválasztó karakternél, az elválasztó karaktert a vagy IndexOf a IndexOfAny metódussal keresheti meg a sztringben. Ha elválaszt egy sztringet egy elválasztó sztringnél, az elválasztó sztring első karakterének megkereséséhez használja a IndexOf vagy IndexOfAny a metódust. Ezután a Compare metódus használatával állapítsa meg, hogy az első karakter utáni karakterek megegyeznek-e az elválasztó sztring többi karakterével.

Emellett, ha ugyanazt a karakterkészletet használja a sztringek több Split metódushívásban való felosztására, érdemes lehet egyetlen tömböt létrehozni, és hivatkozni rá minden metódushívásban. Ez jelentősen csökkenti az egyes metódushívások többletterhelését.

Megjegyzések a hívókhoz

A .NET Framework 3.5-ös és korábbi verzióiban, ha a metódus egy < vagy nem tartalmaz karaktereket, a metódus a sztring felosztásához kissé eltérő szóköz karaktereket használ, mint a metódus a sztring levágásához. A .NET Framework 4-től kezdve mindkét metódus azonos Unicode-szóköz karakterkészletet használ.

A következőre érvényes:

Split(Char, Int32, StringSplitOptions)

Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs

Egy sztringet a megadott karakterelválasztó alapján legfeljebb több részsztringre osztja fel, és opcionálisan kihagyja az eredményből az üres részszúrásokat.

public string[] Split(char separator, int count, StringSplitOptions options = System.StringSplitOptions.None);
member this.Split : char * int * StringSplitOptions -> string[]
Public Function Split (separator As Char, count As Integer, Optional options As StringSplitOptions = System.StringSplitOptions.None) As String()

Paraméterek

separator
Char

Olyan karakter, amely elválasztja a példányban lévő részszűkítéseket.

count
Int32

A tömbben elvárt elemek maximális száma.

options
StringSplitOptions

Az enumerálási értékek bitenkénti kombinációja, amely meghatározza, hogy levágja-e az alsztringeket, és üres alsztringeket tartalmaz-e.

Válaszok

String[]

Olyan tömb, amely legfeljebb count részszűkítéseket tartalmaz ebből a példányból, amelyeket separatora rendszer elhatárolt.

Megjegyzések

Ha a sztring már fel lett osztva count – 1 alkalommal, de a sztring végét nem érte el, akkor a visszaadott tömb utolsó sztringje érintetlenül fogja tartalmazni a példány fennmaradó záró részszúrását.

A következőre érvényes:

Split(String[], StringSplitOptions)

Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs

A sztringeket részsztringekre osztja egy megadott elválasztó sztring és opcionálisan a beállítások alapján.

public:
 cli::array <System::String ^> ^ Split(cli::array <System::String ^> ^ separator, StringSplitOptions options);
public string[] Split(string[] separator, StringSplitOptions options);
public string[] Split(string[]? separator, StringSplitOptions options);
[System.Runtime.InteropServices.ComVisible(false)]
public string[] Split(string[] separator, StringSplitOptions options);
member this.Split : string[] * StringSplitOptions -> string[]
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.Split : string[] * StringSplitOptions -> string[]
Public Function Split (separator As String(), options As StringSplitOptions) As String()

Paraméterek

separator
String[]

A sztringek olyan tömbje, amely elválasztja a sztringben lévő sztringeket, egy üres tömb, amely nem tartalmaz elválasztójeleket, vagy null.

options
StringSplitOptions

Az enumerálási értékek bitenkénti kombinációja, amely meghatározza, hogy levágja-e az alsztringeket, és üres alsztringeket tartalmaz-e.

Válaszok

String[]

Olyan tömb, amelynek elemei a sztring egy vagy több sztringgel tagolt részsztringjét tartalmazzák a sztringben separator. További információkért lásd a Megjegyzések szakaszt.

Attribútumok

Kivételek

options nem tartozik az StringSplitOptions értékek közé.

Példák

Az alábbi példa a visszaadott tömbök különbségét szemlélteti egy sztring metódusának String.Split(String[], StringSplitOptions) meghívásával, amelynek paramétere options egyenlő StringSplitOptions.None és StringSplitOptions.RemoveEmptyEntries.

string source = "[stop]ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]";
string[] stringSeparators = new string[] { "[stop]" };
string[] result;

// Display the original string and delimiter string.
Console.WriteLine($"Splitting the string:\n   \"{source}\".");
Console.WriteLine();
Console.WriteLine($"Using the delimiter string:\n   \"{stringSeparators[0]}\"");
Console.WriteLine();

// Split a string delimited by another string and return all elements.
result = source.Split(stringSeparators, StringSplitOptions.None);
Console.WriteLine($"Result including all elements ({result.Length} elements):");
Console.Write("   ");
foreach (string s in result)
{
    Console.Write("'{0}' ", String.IsNullOrEmpty(s) ? "<>" : s);
}
Console.WriteLine();
Console.WriteLine();

// Split delimited by another string and return all non-empty elements.
result = source.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries);
Console.WriteLine($"Result including non-empty elements ({result.Length} elements):");
Console.Write("   ");
foreach (string s in result)
{
    Console.Write("'{0}' ", String.IsNullOrEmpty(s) ? "<>" : s);
}
Console.WriteLine();

// The example displays the following output:
//    Splitting the string:
//       "[stop]ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]".
//
//    Using the delimiter string:
//       "[stop]"
//
//    Result including all elements (9 elements):
//       '<>' 'ONE' '<>' 'TWO' '<>' '<>' 'THREE' '<>' '<>'
//
//    Result including non-empty elements (3 elements):
//       'ONE' 'TWO' 'THREE'
let source = "[stop]ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]"
let stringSeparators = [| "[stop]" |]

// Display the original string and delimiter string.
printfn $"Splitting the string:\n   \"{source}\".\n"
printfn $"Using the delimiter string:\n   \"{stringSeparators[0]}\"\n"

// Split a string delimited by another string and return all elements.
let result = source.Split(stringSeparators, StringSplitOptions.None)
printfn $"Result including all elements ({result.Length} elements):"
printf "   "
for s in result do
    printf $"""'{if String.IsNullOrEmpty s then "<>" else s}' """
printfn "\n"

// Split delimited by another string and return all non-empty elements.
let result = source.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries)
Console.WriteLine($"Result including non-empty elements ({result.Length} elements):")
printf "   "
for s in result do
    printf $"""'{if String.IsNullOrEmpty s then "<>" else s}' """
printfn ""

// The example displays the following output:
//    Splitting the string:
//       "[stop]ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]".
//
//    Using the delimiter string:
//       "[stop]"
//
//    let result including all elements (9 elements):
//       '<>' 'ONE' '<>' 'TWO' '<>' '<>' 'THREE' '<>' '<>'
//
//    let result including non-empty elements (3 elements):
//       'ONE' 'TWO' 'THREE'
Dim source As String = "[stop]ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]"
Dim stringSeparators() As String = {"[stop]"}
Dim result() As String

' Display the original string and delimiter string.
Console.WriteLine("Splitting the string:{0}   '{1}'.", vbCrLf, source)
Console.WriteLine()
Console.WriteLine("Using the delimiter string:{0}   '{1}'.",
                vbCrLf, stringSeparators(0))
Console.WriteLine()

' Split a string delimited by another string and return all elements.
result = source.Split(stringSeparators, StringSplitOptions.None)
Console.WriteLine("Result including all elements ({0} elements):",
                result.Length)
Console.Write("   ")
For Each s As String In result
    Console.Write("'{0}' ", IIf(String.IsNullOrEmpty(s), "<>", s))
Next
Console.WriteLine()
Console.WriteLine()

' Split delimited by another string and return all non-empty elements.
result = source.Split(stringSeparators,
                    StringSplitOptions.RemoveEmptyEntries)
Console.WriteLine("Result including non-empty elements ({0} elements):",
                result.Length)
Console.Write("   ")
For Each s As String In result
    Console.Write("'{0}' ", IIf(String.IsNullOrEmpty(s), "<>", s))
Next
Console.WriteLine()

' The example displays the following output:
'    Splitting the string:
'       "[stop]ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]".
'    
'    Using the delimiter string:
'       "[stop]"
'    
'    Result including all elements (9 elements):
'       '<>' 'ONE' '<>' 'TWO' '<>' '<>' 'THREE' '<>' '<>'
'    
'    Result including non-empty elements (3 elements):
'       'ONE' 'TWO' 'THREE'

Az alábbi példa olyan elválasztó tömböt határoz meg, amely írásjeleket és szóközöket tartalmaz. Ha ezt a tömböt a metódus értékével StringSplitOptions.RemoveEmptyEntriesSplit(String[], StringSplitOptions) együtt adja vissza, egy tömböt ad vissza, amely a sztring egyes szavaiból áll.

string[] separators = { ",", ".", "!", "?", ";", ":", " " };
string value = "The handsome, energetic, young dog was playing with his smaller, more lethargic litter mate.";
string[] words = value.Split(separators, StringSplitOptions.RemoveEmptyEntries);
foreach (var word in words)
    Console.WriteLine(word);

// The example displays the following output:
//       The
//       handsome
//       energetic
//       young
//       dog
//       was
//       playing
//       with
//       his
//       smaller
//       more
//       lethargic
//       litter
//       mate
let separators = [| ","; "."; "!"; "?"; ""; ":"; " " |]
let value = "The handsome, energetic, young dog was playing with his smaller, more lethargic litter mate."
let words = value.Split(separators, StringSplitOptions.RemoveEmptyEntries)
for word in words do
    printfn $"${word}"

// The example displays the following output:
//       The
//       handsome
//       energetic
//       young
//       dog
//       was
//       playing
//       with
//       his
//       smaller
//       more
//       lethargic
//       litter
//       mate
    Dim separators() As String = {",", ".", "!", "?", ";", ":", " "}
    Dim value As String = "The handsome, energetic, young dog was playing with his smaller, more lethargic litter mate."
    Dim words() As String = value.Split(separators, StringSplitOptions.RemoveEmptyEntries)
    For Each word In words
        Console.WriteLine(word)
    Next
End Sub

' The example displays the following output:
'
'       The
'       handsome
'       energetic
'       young
'       dog
'       was
'       playing
'       with
'       his
'       smaller
'       more
'       lethargic
'       litter
'       mate

Vegye figyelembe, hogy a metódus meghívása a options következő StringSplitOptions.RemoveEmptyEntriesargumentummal történik: . Ez megakadályozza, hogy a visszaadott tömb olyan értékeket tartalmazzen String.Empty , amelyek üres részszúrási egyezéseket jelölnek az írásjelek és a szóköz karakterek között.

Megjegyzések

Ha egy sztringet ismert sztringek elválasztanak, a Split metódussal alsztringekre bonthatja.

A határoló sztringek nem szerepelnek a visszaadott tömb elemeiben. Ha például a separator tömb tartalmazza a "--" sztringet, és az aktuális sztringpéldány értéke "aa--bb--cc", a metódus egy tömböt ad vissza, amely három elemet tartalmaz: "aa", "bb" és "cc".

Ha ez a példány nem tartalmazza a benne lévő separatorsztringeket, a visszaadott tömb egyetlen elemből áll, amely tartalmazza ezt a példányt.

Ha a options paraméter és RemoveEmptyEntries a példány hossza nulla, a metódus üres tömböt ad vissza.

Minden elem separator külön elválasztójelet határoz meg, amely egy vagy több karakterből áll. Ha az options argumentum az None, és két elválasztó van egymás mellett, vagy a példány elején vagy végén egy elválasztó található, a megfelelő tömbelem tartalmaz String.Empty. Ha például separator két elemet ("-" és "_") tartalmaz, a sztringpéldány értéke "-_aa-_", az argumentum optionsértéke None pedig az, hogy a metódus egy sztringtömböt ad vissza, amely az alábbi öt elemet tartalmazza:

  1. String.Empty, amely azt az üres sztringet jelöli, amely a "-" alászúrást megelőzi a 0 indexnél.

  2. String.Empty, amely az üres sztringet jelöli a 0. index "-" alsztringje és az 1. index "_" alsztringje között.

  3. "aa".

  4. String.Empty, amely az üres sztringet jelöli, amely a "-" sztringet követi a 4. indexben.

  5. String.Empty, amely az üres sztringet jelöli, amely az 5. index "_" részszúrását követi.

Az elválasztó tömb

Ha az elemek separator bármelyike több karakterből áll, a teljes részszűkítés elválasztónak minősül. Ha például a "10" elem egyik eleme separator , a "This10is10a10string" sztring felosztására tett kísérlet a következő négyelemű tömböt adja vissza: { "This", "is", "a", "string." }.

Ha a separator paraméter null nem üres sztringeket tartalmaz vagy nem tartalmaz, akkor a szóköz karaktereket a rendszer elválasztó karakternek tekinti. A szóköz karaktereket a Unicode szabvány határozza meg, és a Char.IsWhiteSpace metódus visszaadja true őket, ha átadják őket.

A paraméter átadásához nullstring[] separator meg kell adnia a hívás más null túlterhelésekből ( például Split(Char[], StringSplitOptions). Az alábbi példa számos módszert mutat be a túlterhelés egyértelmű azonosítására.

string phrase = "The quick  brown fox";

_ = phrase.Split(default(string[]), StringSplitOptions.RemoveEmptyEntries);

_ = phrase.Split((string[]?)null, StringSplitOptions.RemoveEmptyEntries);

_ = phrase.Split(null as string[], StringSplitOptions.RemoveEmptyEntries);
let phrase = "The quick  brown fox"

phrase.Split(Unchecked.defaultof<string[]>, StringSplitOptions.RemoveEmptyEntries) |> ignore

phrase.Split(null :> string[], StringSplitOptions.RemoveEmptyEntries) |> ignore

phrase.Split((null: string[]), StringSplitOptions.RemoveEmptyEntries) |> ignore
Dim phrase As String = "The quick brown fox"
Dim words() As String

words = phrase.Split(TryCast(Nothing, String()),
                       StringSplitOptions.RemoveEmptyEntries)

words = phrase.Split(New String() {},
                     StringSplitOptions.RemoveEmptyEntries)

Összehasonlítás részletei

A Split metódus kinyeri az ebben a sztringben separator lévő részsztringeket, amelyeket a paraméter egy vagy több sztringje elválaszt, és ezeket az alsztringeket tömb elemeiként adja vissza.

A Split metódus a kis- és nagybetűket megkülönböztető rendezési szabályokkal végzett összehasonlítások végrehajtásával keresi a határolójeleket. A szavak, sztringek és sorszámok rendezéséről további információt az System.Globalization.CompareOptions enumerálásban talál.

A Split metódus figyelmen kívül hagyja annak bármely elemét separator , amelynek az értéke vagy null az üres sztring ("").

A kétértelmű eredmények elkerülése érdekében, ha a sztringekben separator közös karakterek vannak, a művelet a Split példány értékének elejétől végéig folytatódik, és megegyezik a példány elválasztó elemével egyenlő első elemével separator . A példányban az alsztringek előfordulási sorrendje elsőbbséget élvez az elemek sorrendjében a példányban separator.

Vegyük például azt a példányt, amelynek értéke "abcdef". Ha az első elem separator az "ef" volt, a második elem pedig "bcde", akkor a felosztási művelet eredménye egy sztringtömb lenne, amely két elemet tartalmaz: "a" és "f". Ennek az az oka, hogy a példányban a "bcde" alsztring megjelenik, és megegyezik az "f" alsztring előtti elemekkel separator .

Ha azonban az első elem separator a "bcd" volt, a második pedig "bc", akkor a felosztási művelet eredménye egy sztringtömb, amely két elemet tartalmaz: "a" és "ef". Ennek az az oka, hogy a "bcd" az első elválasztó separator , amely megegyezik a példány elválasztójelével. Ha az elválasztók sorrendje megfordítva lett, így az első elem "bc" volt, a második pedig "bcd", akkor az eredmény egy sztringtömb lesz, amely két elemet tartalmaz: "a" és "def".

Teljesítménnyel kapcsolatos szempontok

A Split metódusok memóriát foglalnak le a visszaadott tömbobjektumhoz és egy String objektumhoz minden tömbelemhez. Ha az alkalmazás optimális teljesítményt igényel, vagy ha a memóriafoglalás kezelése kritikus fontosságú az alkalmazásban, fontolja meg a IndexOf metódus vagy IndexOfAny metódus használatát, és opcionálisan a Compare metódust, hogy megkeressen egy sztringen belüli alsztringet.

Ha elválaszt egy sztringet egy elválasztó karakternél, az elválasztó karaktert a vagy IndexOf a IndexOfAny metódussal keresheti meg a sztringben. Ha elválaszt egy sztringet egy elválasztó sztringnél, az elválasztó sztring első karakterének megkereséséhez használja a IndexOf vagy IndexOfAny a metódust. Ezután a Compare metódus használatával állapítsa meg, hogy az első karakter utáni karakterek megegyeznek-e az elválasztó sztring többi karakterével.

Emellett, ha ugyanazt a karakterkészletet használja a sztringek több Split metódushívásban való felosztására, érdemes lehet egyetlen tömböt létrehozni, és hivatkozni rá minden metódushívásban. Ez jelentősen csökkenti az egyes metódushívások többletterhelését.

Megjegyzések a hívókhoz

A .NET Framework 3.5-ös és korábbi verzióiban, ha a metódus egy < vagy nem tartalmaz karaktereket, a metódus a sztring felosztásához kissé eltérő szóköz karaktereket használ, mint a metódus a sztring levágásához. A .NET Framework 4-től kezdve mindkét metódus azonos Unicode-szóköz karakterkészletet használ.

A következőre érvényes:

Split(String, Int32, StringSplitOptions)

Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs

A sztringeket egy megadott elválasztó sztring és opcionálisan lehetőségek alapján legfeljebb több részsztringre osztja fel.

public string[] Split(string? separator, int count, StringSplitOptions options = System.StringSplitOptions.None);
public string[] Split(string separator, int count, StringSplitOptions options = System.StringSplitOptions.None);
member this.Split : string * int * StringSplitOptions -> string[]
Public Function Split (separator As String, count As Integer, Optional options As StringSplitOptions = System.StringSplitOptions.None) As String()

Paraméterek

separator
String

Egy sztring, amely elválasztja az ebben a példányban lévő részsztringeket.

count
Int32

A tömbben elvárt elemek maximális száma.

options
StringSplitOptions

Az enumerálási értékek bitenkénti kombinációja, amely meghatározza, hogy levágja-e az alsztringeket, és üres alsztringeket tartalmaz-e.

Válaszok

String[]

Olyan tömb, amely legfeljebb count részszűkítéseket tartalmaz ebből a példányból, amelyeket separatora rendszer elhatárolt.

Megjegyzések

Ha a sztring már fel lett osztva count – 1 alkalommal, de a sztring végét nem érte el, akkor a visszaadott tömb utolsó sztringje érintetlenül fogja tartalmazni a példány fennmaradó záró részszúrását.

A következőre érvényes:

Split(Char[], StringSplitOptions)

Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs

Sztringeket oszt fel részsztringekre a megadott elválasztó karakterek és beállítások alapján.

public:
 cli::array <System::String ^> ^ Split(cli::array <char> ^ separator, StringSplitOptions options);
public string[] Split(char[] separator, StringSplitOptions options);
public string[] Split(char[]? separator, StringSplitOptions options);
[System.Runtime.InteropServices.ComVisible(false)]
public string[] Split(char[] separator, StringSplitOptions options);
member this.Split : char[] * StringSplitOptions -> string[]
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.Split : char[] * StringSplitOptions -> string[]
Public Function Split (separator As Char(), options As StringSplitOptions) As String()

Paraméterek

separator
Char[]

A sztringben lévő részsztringeket elválasztó karakterek tömbje, egy üres tömb, amely nem tartalmaz elválasztójeleket, vagy null.

options
StringSplitOptions

Az enumerálási értékek bitenkénti kombinációja, amely meghatározza, hogy levágja-e az alsztringeket, és üres alsztringeket tartalmaz-e.

Válaszok

String[]

Olyan tömb, amelynek elemei a sztring egy vagy több karakterrel tagolt részsztringjét tartalmazzák.separator További információkért lásd a Megjegyzések szakaszt.

Attribútumok

Kivételek

options nem tartozik az StringSplitOptions értékek közé.

Példák

Az alábbi példa az enumerálást használja a StringSplitOptions metódus által létrehozott részstringek belefoglalására vagy kizárására Split .

// This example demonstrates the String.Split() methods that use
// the StringSplitOptions enumeration.

// Example 1: Split a string delimited by characters
Console.WriteLine("1) Split a string delimited by characters:\n");

string s1 = ",ONE,, TWO,, , THREE,,";
char[] charSeparators = new char[] { ',' };
string[] result;

Console.WriteLine($"The original string is: \"{s1}\".");
Console.WriteLine($"The delimiter character is: '{charSeparators[0]}'.\n");

// Split the string and return all elements
Console.WriteLine("1a) Return all elements:");
result = s1.Split(charSeparators, StringSplitOptions.None);
Show(result);

// Split the string and return all elements with whitespace trimmed
Console.WriteLine("1b) Return all elements with whitespace trimmed:");
result = s1.Split(charSeparators, StringSplitOptions.TrimEntries);
Show(result);

// Split the string and return all non-empty elements
Console.WriteLine("1c) Return all non-empty elements:");
result = s1.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries);
Show(result);

// Split the string and return all non-whitespace elements with whitespace trimmed
Console.WriteLine("1d) Return all non-whitespace elements with whitespace trimmed:");
result = s1.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
Show(result);


// Split the string into only two elements, keeping the remainder in the last match
Console.WriteLine("1e) Split into only two elements:");
result = s1.Split(charSeparators, 2, StringSplitOptions.None);
Show(result);

// Split the string into only two elements with whitespace trimmed, keeping the remainder in the last match
Console.WriteLine("1f) Split into only two elements with whitespace trimmed:");
result = s1.Split(charSeparators, 2, StringSplitOptions.TrimEntries);
Show(result);

// Split the string into only two non-empty elements, keeping the remainder in the last match
Console.WriteLine("1g) Split into only two non-empty elements:");
result = s1.Split(charSeparators, 2, StringSplitOptions.RemoveEmptyEntries);
Show(result);

// Split the string into only two non-whitespace elements with whitespace trimmed, keeping the remainder in the last match
Console.WriteLine("1h) Split into only two non-whitespace elements with whitespace trimmed:");
result = s1.Split(charSeparators, 2, StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
Show(result);


// Example 2: Split a string delimited by another string
Console.WriteLine("2) Split a string delimited by another string:\n");

string s2 = "[stop]" +
            "ONE[stop] [stop]" +
            "TWO  [stop][stop]  [stop]" +
            "THREE[stop][stop]  ";
string[] stringSeparators = new string[] { "[stop]" };

Console.WriteLine($"The original string is: \"{s2}\".");
Console.WriteLine($"The delimiter string is: \"{stringSeparators[0]}\".\n");

// Split the string and return all elements
Console.WriteLine("2a) Return all elements:");
result = s2.Split(stringSeparators, StringSplitOptions.None);
Show(result);

// Split the string and return all elements with whitespace trimmed
Console.WriteLine("2b) Return all elements with whitespace trimmed:");
result = s2.Split(stringSeparators, StringSplitOptions.TrimEntries);
Show(result);

// Split the string and return all non-empty elements
Console.WriteLine("2c) Return all non-empty elements:");
result = s2.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries);
Show(result);

// Split the string and return all non-whitespace elements with whitespace trimmed
Console.WriteLine("2d) Return all non-whitespace elements with whitespace trimmed:");
result = s2.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
Show(result);


// Split the string into only two elements, keeping the remainder in the last match
Console.WriteLine("2e) Split into only two elements:");
result = s2.Split(stringSeparators, 2, StringSplitOptions.None);
Show(result);

// Split the string into only two elements with whitespace trimmed, keeping the remainder in the last match
Console.WriteLine("2f) Split into only two elements with whitespace trimmed:");
result = s2.Split(stringSeparators, 2, StringSplitOptions.TrimEntries);
Show(result);

// Split the string into only two non-empty elements, keeping the remainder in the last match
Console.WriteLine("2g) Split into only two non-empty elements:");
result = s2.Split(stringSeparators, 2, StringSplitOptions.RemoveEmptyEntries);
Show(result);

// Split the string into only two non-whitespace elements with whitespace trimmed, keeping the remainder in the last match
Console.WriteLine("2h) Split into only two non-whitespace elements with whitespace trimmed:");
result = s2.Split(stringSeparators, 2, StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
Show(result);


// Display the array of separated strings using a local function
void Show(string[] entries)
{
    Console.WriteLine($"The return value contains these {entries.Length} elements:");
    foreach (string entry in entries)
    {
        Console.Write($"<{entry}>");
    }
    Console.Write("\n\n");
}

/*
This example produces the following results:

1) Split a string delimited by characters:

The original string is: ",ONE,, TWO,, , THREE,,".
The delimiter character is: ','.

1a) Return all elements:
The return value contains these 9 elements:
<><ONE><>< TWO><>< >< THREE><><>

1b) Return all elements with whitespace trimmed:
The return value contains these 9 elements:
<><ONE><><TWO><><><THREE><><>

1c) Return all non-empty elements:
The return value contains these 4 elements:
<ONE>< TWO>< >< THREE>

1d) Return all non-whitespace elements with whitespace trimmed:
The return value contains these 3 elements:
<ONE><TWO><THREE>

1e) Split into only two elements:
The return value contains these 2 elements:
<><ONE,, TWO,, , THREE,,>

1f) Split into only two elements with whitespace trimmed:
The return value contains these 2 elements:
<><ONE,, TWO,, , THREE,,>

1g) Split into only two non-empty elements:
The return value contains these 2 elements:
<ONE>< TWO,, , THREE,,>

1h) Split into only two non-whitespace elements with whitespace trimmed:
The return value contains these 2 elements:
<ONE><TWO,, , THREE,,>

2) Split a string delimited by another string:

The original string is: "[stop]ONE[stop] [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]  ".
The delimiter string is: "[stop]".

2a) Return all elements:
The return value contains these 9 elements:
<><ONE>< ><TWO  ><><  ><THREE><><  >

2b) Return all elements with whitespace trimmed:
The return value contains these 9 elements:
<><ONE><><TWO><><><THREE><><>

2c) Return all non-empty elements:
The return value contains these 6 elements:
<ONE>< ><TWO  ><  ><THREE><  >

2d) Return all non-whitespace elements with whitespace trimmed:
The return value contains these 3 elements:
<ONE><TWO><THREE>

2e) Split into only two elements:
The return value contains these 2 elements:
<><ONE[stop] [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]  >

2f) Split into only two elements with whitespace trimmed:
The return value contains these 2 elements:
<><ONE[stop] [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]>

2g) Split into only two non-empty elements:
The return value contains these 2 elements:
<ONE>< [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]  >

2h) Split into only two non-whitespace elements with whitespace trimmed:
The return value contains these 2 elements:
<ONE><TWO  [stop][stop]  [stop]THREE[stop][stop]>

*/
// This example demonstrates the String.Split() methods that use
// the StringSplitOptions enumeration.

// Display the array of separated strings using a local function
let show  (entries: string[]) =
    printfn $"The return value contains these {entries.Length} elements:"
    for entry in entries do
        printf $"<{entry}>"
    printf "\n\n"

// Example 1: Split a string delimited by characters
printfn "1) Split a string delimited by characters:\n"

let s1 = ",ONE,, TWO,, , THREE,,"
let charSeparators = [| ',' |]

printfn $"The original string is: \"{s1}\"."
printfn $"The delimiter character is: '{charSeparators[0]}'.\n"

// Split the string and return all elements
printfn "1a) Return all elements:"
let result = s1.Split(charSeparators, StringSplitOptions.None)
show result

// Split the string and return all elements with whitespace trimmed
printfn "1b) Return all elements with whitespace trimmed:"
let result = s1.Split(charSeparators, StringSplitOptions.TrimEntries)
show result

// Split the string and return all non-empty elements
printfn "1c) Return all non-empty elements:"
let result = s1.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries)
show result

// Split the string and return all non-whitespace elements with whitespace trimmed
printfn "1d) Return all non-whitespace elements with whitespace trimmed:"
let result = s1.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries ||| StringSplitOptions.TrimEntries)
show result


// Split the string into only two elements, keeping the remainder in the last match
printfn "1e) Split into only two elements:"
let result = s1.Split(charSeparators, 2, StringSplitOptions.None)
show result

// Split the string into only two elements with whitespace trimmed, keeping the remainder in the last match
printfn "1f) Split into only two elements with whitespace trimmed:"
let result = s1.Split(charSeparators, 2, StringSplitOptions.TrimEntries)
show result

// Split the string into only two non-empty elements, keeping the remainder in the last match
printfn "1g) Split into only two non-empty elements:"
let result = s1.Split(charSeparators, 2, StringSplitOptions.RemoveEmptyEntries)
show result

// Split the string into only two non-whitespace elements with whitespace trimmed, keeping the remainder in the last match
printfn "1h) Split into only two non-whitespace elements with whitespace trimmed:"
let result = s1.Split(charSeparators, 2, StringSplitOptions.RemoveEmptyEntries ||| StringSplitOptions.TrimEntries)
show result


// Example 2: Split a string delimited by another string
printfn "2) Split a string delimited by another string:\n"

let s2 = "[stop]" +
            "ONE[stop] [stop]" +
            "TWO  [stop][stop]  [stop]" +
            "THREE[stop][stop]  "
let stringSeparators = [| "[stop]" |]

printfn $"The original string is: \"{s2}\"."
printfn $"The delimiter string is: \"{stringSeparators[0]}\".\n"

// Split the string and return all elements
printfn "2a) Return all elements:"
let result = s2.Split(stringSeparators, StringSplitOptions.None)
show result

// Split the string and return all elements with whitespace trimmed
printfn "2b) Return all elements with whitespace trimmed:"
let result = s2.Split(stringSeparators, StringSplitOptions.TrimEntries)
show result

// Split the string and return all non-empty elements
printfn "2c) Return all non-empty elements:"
let result = s2.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries)
show result

// Split the string and return all non-whitespace elements with whitespace trimmed
printfn "2d) Return all non-whitespace elements with whitespace trimmed:"
let result = s2.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries ||| StringSplitOptions.TrimEntries)
show result


// Split the string into only two elements, keeping the remainder in the last match
printfn "2e) Split into only two elements:"
let result = s2.Split(stringSeparators, 2, StringSplitOptions.None)
show result

// Split the string into only two elements with whitespace trimmed, keeping the remainder in the last match
printfn "2f) Split into only two elements with whitespace trimmed:"
let result = s2.Split(stringSeparators, 2, StringSplitOptions.TrimEntries)
show result

// Split the string into only two non-empty elements, keeping the remainder in the last match
printfn "2g) Split into only two non-empty elements:"
let result = s2.Split(stringSeparators, 2, StringSplitOptions.RemoveEmptyEntries)
show result

// Split the string into only two non-whitespace elements with whitespace trimmed, keeping the remainder in the last match
printfn "2h) Split into only two non-whitespace elements with whitespace trimmed:"
let result = s2.Split(stringSeparators, 2, StringSplitOptions.RemoveEmptyEntries ||| StringSplitOptions.TrimEntries)
show result

(*
This example produces the following results:

1) Split a string delimited by characters:

The original string is: ",ONE,, TWO,, , THREE,,".
The delimiter character is: ','.

1a) Return all elements:
The return value contains these 9 elements:
<><ONE><>< TWO><>< >< THREE><><>

1b) Return all elements with whitespace trimmed:
The return value contains these 9 elements:
<><ONE><><TWO><><><THREE><><>

1c) Return all non-empty elements:
The return value contains these 4 elements:
<ONE>< TWO>< >< THREE>

1d) Return all non-whitespace elements with whitespace trimmed:
The return value contains these 3 elements:
<ONE><TWO><THREE>

1e) Split into only two elements:
The return value contains these 2 elements:
<><ONE,, TWO,, , THREE,,>

1f) Split into only two elements with whitespace trimmed:
The return value contains these 2 elements:
<><ONE,, TWO,, , THREE,,>

1g) Split into only two non-empty elements:
The return value contains these 2 elements:
<ONE>< TWO,, , THREE,,>

1h) Split into only two non-whitespace elements with whitespace trimmed:
The return value contains these 2 elements:
<ONE><TWO,, , THREE,,>

2) Split a string delimited by another string:

The original string is: "[stop]ONE[stop] [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]  ".
The delimiter string is: "[stop]".

2a) Return all elements:
The return value contains these 9 elements:
<><ONE>< ><TWO  ><><  ><THREE><><  >

2b) Return all elements with whitespace trimmed:
The return value contains these 9 elements:
<><ONE><><TWO><><><THREE><><>

2c) Return all non-empty elements:
The return value contains these 6 elements:
<ONE>< ><TWO  ><  ><THREE><  >

2d) Return all non-whitespace elements with whitespace trimmed:
The return value contains these 3 elements:
<ONE><TWO><THREE>

2e) Split into only two elements:
The return value contains these 2 elements:
<><ONE[stop] [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]  >

2f) Split into only two elements with whitespace trimmed:
The return value contains these 2 elements:
<><ONE[stop] [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]>

2g) Split into only two non-empty elements:
The return value contains these 2 elements:
<ONE>< [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]  >

2h) Split into only two non-whitespace elements with whitespace trimmed:
The return value contains these 2 elements:
<ONE><TWO  [stop][stop]  [stop]THREE[stop][stop]>

*)
Public Shared Sub StringSplitOptionsExamples()
    ' This example demonstrates the String.Split() methods that use
    ' the StringSplitOptions enumeration.

    ' Example 1: Split a string delimited by characters
    Console.WriteLine("1) Split a string delimited by characters:" & vbCrLf)

    Dim s1 As String = ",ONE,, TWO,, , THREE,,"
    Dim charSeparators() As Char = {","c}
    Dim result() As String

    Console.WriteLine("The original string is: ""{0}"".", s1)
    Console.WriteLine("The delimiter character is: '{0}'." & vbCrLf, charSeparators(0))

    ' Split the string and return all elements
    Console.WriteLine("1a) Return all elements:")
    result = s1.Split(charSeparators, StringSplitOptions.None)
    Show(result)

    ' Split the string and return all elements with whitespace trimmed
    Console.WriteLine("1b) Return all elements with whitespace trimmed:")
    result = s1.Split(charSeparators, StringSplitOptions.TrimEntries)
    Show(result)

    ' Split the string and return all non-empty elements
    Console.WriteLine("1c) Return all non-empty elements:")
    result = s1.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries)
    Show(result)

    ' Split the string and return all non-whitespace elements with whitespace trimmed
    Console.WriteLine("1d) Return all non-whitespace elements with whitespace trimmed:")
    result = s1.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries Or StringSplitOptions.TrimEntries)
    Show(result)


    ' Split the string into only two elements, keeping the remainder in the last match
    Console.WriteLine("1e) Split into only two elements:")
    result = s1.Split(charSeparators, 2, StringSplitOptions.None)
    Show(result)

    ' Split the string into only two elements with whitespace trimmed, keeping the remainder in the last match
    Console.WriteLine("1f) Split into only two elements with whitespace trimmed:")
    result = s1.Split(charSeparators, 2, StringSplitOptions.TrimEntries)
    Show(result)

    ' Split the string into only two non-empty elements, keeping the remainder in the last match
    Console.WriteLine("1g) Split into only two non-empty elements:")
    result = s1.Split(charSeparators, 2, StringSplitOptions.RemoveEmptyEntries)
    Show(result)

    ' Split the string into only two non-whitespace elements with whitespace trimmed, keeping the remainder in the last match
    Console.WriteLine("1h) Split into only two non-whitespace elements with whitespace trimmed:")
    result = s1.Split(charSeparators, 2, StringSplitOptions.RemoveEmptyEntries Or StringSplitOptions.TrimEntries)
    Show(result)


    ' Example 2: Split a string delimited by another string
    Console.WriteLine("2) Split a string delimited by another string:" & vbCrLf)

    Dim s2 As String = "[stop]" +
                "ONE[stop] [stop]" +
                "TWO  [stop][stop]  [stop]" +
                "THREE[stop][stop]  "
    Dim stringSeparators() As String = {"[stop]"}


    Console.WriteLine("The original string is: ""{0}"".", s2)
    Console.WriteLine("The delimiter string is: ""{0}""." & vbCrLf, stringSeparators(0))

    ' Split the string and return all elements
    Console.WriteLine("2a) Return all elements:")
    result = s2.Split(stringSeparators, StringSplitOptions.None)
    Show(result)

    ' Split the string and return all elements with whitespace trimmed
    Console.WriteLine("2b) Return all elements with whitespace trimmed:")
    result = s2.Split(stringSeparators, StringSplitOptions.TrimEntries)
    Show(result)

    ' Split the string and return all non-empty elements
    Console.WriteLine("2c) Return all non-empty elements:")
    result = s2.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries)
    Show(result)

    ' Split the string and return all non-whitespace elements with whitespace trimmed
    Console.WriteLine("2d) Return all non-whitespace elements with whitespace trimmed:")
    result = s2.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries Or StringSplitOptions.TrimEntries)
    Show(result)


    ' Split the string into only two elements, keeping the remainder in the last match
    Console.WriteLine("2e) Split into only two elements:")
    result = s2.Split(stringSeparators, 2, StringSplitOptions.None)
    Show(result)

    ' Split the string into only two elements with whitespace trimmed, keeping the remainder in the last match
    Console.WriteLine("2f) Split into only two elements with whitespace trimmed:")
    result = s2.Split(stringSeparators, 2, StringSplitOptions.TrimEntries)
    Show(result)

    ' Split the string into only two non-empty elements, keeping the remainder in the last match
    Console.WriteLine("2g) Split into only two non-empty elements:")
    result = s2.Split(stringSeparators, 2, StringSplitOptions.RemoveEmptyEntries)
    Show(result)

    ' Split the string into only two non-whitespace elements with whitespace trimmed, keeping the remainder in the last match
    Console.WriteLine("2h) Split into only two non-whitespace elements with whitespace trimmed:")
    result = s2.Split(stringSeparators, 2, StringSplitOptions.RemoveEmptyEntries Or StringSplitOptions.TrimEntries)
    Show(result)

End Sub

' Display the array of separated strings.
Public Shared Sub Show(ByVal entries() As String)
    Console.WriteLine("The return value contains these {0} elements:", entries.Length)
    Dim entry As String
    For Each entry In entries
        Console.Write("<{0}>", entry)
    Next entry
    Console.Write(vbCrLf & vbCrLf)

End Sub

'This example produces the following results:
'
' 1) Split a string delimited by characters:
'
' The original string is: ",ONE,, TWO,, , THREE,,".
' The delimiter character is: ','.
'
' 1a) Return all elements:
' The return value contains these 9 elements:
' <><ONE><>< TWO><>< >< THREE><><>
'
' 1b) Return all elements with whitespace trimmed:
' The return value contains these 9 elements:
' <><ONE><><TWO><><><THREE><><>
'
' 1c) Return all non-empty elements:
' The return value contains these 4 elements:
' <ONE>< TWO>< >< THREE>
'
' 1d) Return all non-whitespace elements with whitespace trimmed:
' The return value contains these 3 elements:
' <ONE><TWO><THREE>
'
' 1e) Split into only two elements:
' The return value contains these 2 elements:
' <><ONE,, TWO,, , THREE,,>
'
' 1f) Split into only two elements with whitespace trimmed:
' The return value contains these 2 elements:
' <><ONE,, TWO,, , THREE,,>
'
' 1g) Split into only two non-empty elements:
' The return value contains these 2 elements:
' <ONE>< TWO,, , THREE,,>
'
' 1h) Split into only two non-whitespace elements with whitespace trimmed:
' The return value contains these 2 elements:
' <ONE><TWO,, , THREE,,>
'
' 2) Split a string delimited by another string:
'
' The original string is: "[stop]ONE[stop] [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]  ".
' The delimiter string is: "[stop]".
'
' 2a) Return all elements:
' The return value contains these 9 elements:
' <><ONE>< ><TWO  ><><  ><THREE><><  >
'
' 2b) Return all elements with whitespace trimmed:
' The return value contains these 9 elements:
' <><ONE><><TWO><><><THREE><><>
'
' 2c) Return all non-empty elements:
' The return value contains these 6 elements:
' <ONE>< ><TWO  ><  ><THREE><  >
'
' 2d) Return all non-whitespace elements with whitespace trimmed:
' The return value contains these 3 elements:
' <ONE><TWO><THREE>
'
' 2e) Split into only two elements:
' The return value contains these 2 elements:
' <><ONE[stop] [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]  >
'
' 2f) Split into only two elements with whitespace trimmed:
' The return value contains these 2 elements:
' <><ONE[stop] [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]>
'
' 2g) Split into only two non-empty elements:
' The return value contains these 2 elements:
' <ONE>< [stop]TWO  [stop][stop]  [stop]THREE[stop][stop]  >
'
' 2h) Split into only two non-whitespace elements with whitespace trimmed:
' The return value contains these 2 elements:
' <ONE><TWO  [stop][stop]  [stop]THREE[stop][stop]>
'

Megjegyzések

A határoló karakterek (a separator tömbben lévő karakterek) nem szerepelnek a visszaadott tömb elemeiben. Ha például a separator tömb tartalmazza az "-" karaktert, és az aktuális sztringpéldány értéke "aa-bb-cc", a metódus egy tömböt ad vissza, amely három elemet tartalmaz: "aa", "bb" és "cc".

Ha ez a példány nem tartalmazza a karakterek separatoregyikét sem, a visszaadott tömb egyetlen elemből áll, amely tartalmazza ezt a példányt.

Ha a options paraméter és RemoveEmptyEntries a példány hossza nulla, a metódus üres tömböt ad vissza.

Minden elem separator egy különálló elválasztó karaktert határoz meg, amely egyetlen karakterből áll. Ha az options argumentum az None, és két elválasztó van egymás mellett, vagy a példány elején vagy végén egy elválasztó található, a megfelelő tömbelem tartalmaz String.Empty. Ha például separator két elemet tartalmaz, '-' és '_'a sztringpéldány értéke "-_aa-_", és az options argumentum Noneértéke, a metódus egy sztringtömböt ad vissza az alábbi öt elemből:

  1. String.Empty, amely a "-" karaktert megelőző üres sztringet jelöli a 0 indexben.

  2. String.Empty, amely a "-" karakter és az 1. index "_" karaktere közötti üres sztringet jelöli.

  3. "aa".

  4. String.Empty, amely a 4. index "-" karakterét követő üres sztringet jelöli.

  5. String.Empty, amely az 5. index "_" karakterét követő üres sztringet jelöli.

Az elválasztó tömb

Ha a separator paraméter nem tartalmaz vagy nem null tartalmaz karaktereket, akkor a rendszer a szóköz karaktereket elválasztó karakternek tekinti. A szóköz karaktereket a Unicode szabvány határozza meg, és a Char.IsWhiteSpace metódus visszaadja true őket, ha átadják őket.

A paraméter átadásához nullchar[] separator meg kell adnia a hívás más null túlterhelésekből ( például Split(String[], StringSplitOptions). Az alábbi példa számos módszert mutat be a túlterhelés egyértelmű azonosítására.

string phrase = "The quick  brown fox";

_ = phrase.Split(default(char[]), StringSplitOptions.RemoveEmptyEntries);

_ = phrase.Split((char[]?)null, StringSplitOptions.RemoveEmptyEntries);

_ = phrase.Split(null as char[], StringSplitOptions.RemoveEmptyEntries);
let phrase = "The quick  brown fox"

phrase.Split(Unchecked.defaultof<char[]>, StringSplitOptions.RemoveEmptyEntries) |> ignore

phrase.Split(null :> char[], StringSplitOptions.RemoveEmptyEntries) |> ignore

phrase.Split((null: char[]), StringSplitOptions.RemoveEmptyEntries) |> ignore
Dim phrase As String = "The quick brown fox"
Dim words() As String

words = phrase.Split(TryCast(Nothing, Char()),
                       StringSplitOptions.RemoveEmptyEntries)

words = phrase.Split(New Char() {},
                     StringSplitOptions.RemoveEmptyEntries)

Összehasonlítás részletei

A Split metódus kinyeri az ebben a sztringben separator lévő részsztringeket, amelyeket a paraméter egy vagy több karaktere elválaszt, és ezeket az alsztringeket tömbelemekként adja vissza.

A Split metódus a kis- és nagybetűket megkülönböztető rendezési szabályokkal végzett összehasonlítások végrehajtásával keresi a határolójeleket. A szavak, sztringek és sorszámok rendezéséről további információt az System.Globalization.CompareOptions enumerálásban talál.

Teljesítménnyel kapcsolatos szempontok

A Split metódusok memóriát foglalnak le a visszaadott tömbobjektumhoz és egy String objektumhoz minden tömbelemhez. Ha az alkalmazás optimális teljesítményt igényel, vagy ha a memóriafoglalás kezelése kritikus fontosságú az alkalmazásban, fontolja meg a IndexOf metódus vagy IndexOfAny metódus használatát, és opcionálisan a Compare metódust, hogy megkeressen egy sztringen belüli alsztringet.

Ha elválaszt egy sztringet egy elválasztó karakternél, az elválasztó karaktert a vagy IndexOf a IndexOfAny metódussal keresheti meg a sztringben. Ha elválaszt egy sztringet egy elválasztó sztringnél, az elválasztó sztring első karakterének megkereséséhez használja a IndexOf vagy IndexOfAny a metódust. Ezután a Compare metódus használatával állapítsa meg, hogy az első karakter utáni karakterek megegyeznek-e az elválasztó sztring többi karakterével.

Emellett, ha ugyanazt a karakterkészletet használja a sztringek több Split metódushívásban való felosztására, érdemes lehet egyetlen tömböt létrehozni, és hivatkozni rá minden metódushívásban. Ez jelentősen csökkenti az egyes metódushívások többletterhelését.

Megjegyzések a hívókhoz

A .NET Framework 3.5-ös és korábbi verzióiban, ha a metódus egy < vagy nem tartalmaz karaktereket, a metódus a sztring felosztásához kissé eltérő szóköz karaktereket használ, mint a metódus a sztring levágásához. A .NET Framework 4-től kezdve mindkét metódus azonos Unicode-szóköz karakterkészletet használ.

A következőre érvényes:

Split(Char[], Int32)

Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs

A sztringeket a megadott elválasztó karakterek alapján legfeljebb több részsztringre osztja fel.

public:
 cli::array <System::String ^> ^ Split(cli::array <char> ^ separator, int count);
public string[] Split(char[] separator, int count);
public string[] Split(char[]? separator, int count);
member this.Split : char[] * int -> string[]
Public Function Split (separator As Char(), count As Integer) As String()

Paraméterek

separator
Char[]

A sztringben lévő részsztringeket elválasztó karakterek tömbje, egy üres tömb, amely nem tartalmaz elválasztójeleket, vagy null.

count
Int32

A visszaadandó részsztringek maximális száma.

Válaszok

String[]

Olyan tömb, amelynek elemei a példány egy vagy több karakterével separatortagolt részszűkítéseit tartalmazzák. További információkért lásd a Megjegyzések szakaszt.

Kivételek

count negatív.

Példák

Az alábbi példa bemutatja, hogyan count használható a visszaadott sztringek Splitszámának korlátozására.

string name = "Alex Johnson III";

string[] subs = name.Split(null, 2);

string firstName = subs[0];
string lastName;
if (subs.Length > 1)
{
    lastName = subs[1];
}

// firstName = "Alex"
// lastName = "Johnson III"
let name = "Alex Johnson III"

let subs = name.Split(null, 2)

let firstName = subs[0]
let lastName =
    if subs.Length > 1 then
        subs[1]
    else
        ""

// firstName = "Alex"
// lastName = "Johnson III"
Console.WriteLine("What is your name?")
Dim name As String = Console.ReadLine()

Dim substrings = name.Split(" "c, count:=2)
Dim firstName As String = substrings(0)
Dim lastName As String

If substrings.Length > 1 Then
    lastName = substrings(1)
End If

Console.WriteLine("firstName = ""{0}""", firstName)
Console.WriteLine("lastName = ""{0}""", lastName)

' If the user enters "Alex Johnson III":
' firstName = "Alex"
' lastName = "Johnson III"

Megjegyzések

A visszaküldött tömb elemei nem tartalmaznak elválasztó karaktereket.

Ha ez a példány nem tartalmazza a karakterek separatoregyikét sem, a visszaadott tömb egyetlen elemből áll, amely tartalmazza ezt a példányt. Ha count nulla, a függvény egy üres tömböt ad vissza.

Ha a separator paraméter nem tartalmaz vagy nem null tartalmaz karaktereket, akkor a rendszer a szóköz karaktereket elválasztó karakternek tekinti. A szóköz karaktereket a Unicode szabvány határozza meg, és a Char.IsWhiteSpace metódus visszaadja true őket, ha átadják őket.

Az egyes elemek separator külön elválasztó karaktert határoznak meg. Ha két elválasztó van egymás mellett, vagy ha a példány elején vagy végén egy elválasztó található, a megfelelő tömbelem tartalmaz Empty.

Ha ebben a példányban több count részszúrás is szerepel, az első count - 1 részszűrések a visszatérési érték első count - 1 elemeiben lesznek visszaadva, a példány többi karaktere pedig a visszatérési érték utolsó elemében lesz visszaadva.

Ha count nagyobb, mint az alsztringek száma, a rendszer visszaadja a rendelkezésre álló részszűrések számát, és a rendszer nem ad kivételt.

Az alábbi táblázat néhány példát mutat be.

Nyelv Sztringérték Elválasztó Visszaadott tömb
C# "42, 12, 19" new Char[] {',', ' '} {"42", "", "12", "", "19"}
Visual Basic "42, 12, 19" Char() = {";"c; " "c}) {"42", "", "12", "", "19"}
C# "42..12..19." új karakter[] {'.'} {"42", "", "12", "", "19", ""}
Visual Basic "42..12..19." Char() = {"." c} {"42", "", "12", "", "19", ""}
C# "Banán" új karakter[] {'.'} {"Banán"}
Visual Basic "Banán" Char() = {"." c} {"Banán"}
C# "Darb\nSmarba" új karakter[] {} {"Darb", "Smarba"}
Visual Basic "Darb" > vbLf > "Smarba" Char() = {} {"Darb", "Smarba"}
C# "Darb\nSmarba" null {"Darb", "Smarba"}
Visual Basic "Darb" > vbLf > "Smarba" Semmit {"Darb", "Smarba"}

Teljesítménnyel kapcsolatos szempontok

A Split metódusok memóriát foglalnak le a visszaadott tömbobjektumhoz és egy String objektumhoz minden tömbelemhez. Ha az alkalmazás optimális teljesítményt igényel, vagy ha a memóriafoglalás kezelése kritikus fontosságú az alkalmazásban, fontolja meg a IndexOf metódus vagy IndexOfAny metódus használatát, és opcionálisan a Compare metódust, hogy megkeressen egy sztringen belüli alsztringet.

Ha elválaszt egy sztringet egy elválasztó karakternél, az elválasztó karaktert a vagy IndexOf a IndexOfAny metódussal keresheti meg a sztringben. Ha elválaszt egy sztringet egy elválasztó sztringnél, az elválasztó sztring első karakterének megkereséséhez használja a IndexOf vagy IndexOfAny a metódust. Ezután a Compare metódus használatával állapítsa meg, hogy az első karakter utáni karakterek megegyeznek-e az elválasztó sztring többi karakterével.

Emellett, ha ugyanazt a karakterkészletet használja a sztringek több Split metódushívásban való felosztására, érdemes lehet egyetlen tömböt létrehozni, és hivatkozni rá minden metódushívásban. Ez jelentősen csökkenti az egyes metódushívások többletterhelését.

Megjegyzések a hívókhoz

A .NET Framework 3.5-ös és korábbi verzióiban, ha a metódus egy < vagy nem tartalmaz karaktereket, a metódus a sztring felosztásához kissé eltérő szóköz karaktereket használ, mint a metódus a sztring levágásához. A .NET Framework 4-től kezdve mindkét metódus azonos Unicode-szóköz karakterkészletet használ.

Lásd még

A következőre érvényes:

Split(Char, StringSplitOptions)

Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs

Sztringeket oszt fel részsztringekre egy megadott elválasztó karakter és opcionálisan a beállítások alapján.

public string[] Split(char separator, StringSplitOptions options = System.StringSplitOptions.None);
member this.Split : char * StringSplitOptions -> string[]
Public Function Split (separator As Char, Optional options As StringSplitOptions = System.StringSplitOptions.None) As String()

Paraméterek

separator
Char

Egy karakter, amely elválasztja a sztringben lévő részsztringeket.

options
StringSplitOptions

Az enumerálási értékek bitenkénti kombinációja, amely meghatározza, hogy levágja-e az alsztringeket, és üres alsztringeket tartalmaz-e.

Válaszok

String[]

Olyan tömb, amelynek elemei az ebből a példányból származó részszűkítéseket tartalmazzák, amelyeket separatora rendszer elhatárolt.

A következőre érvényes:

Split(ReadOnlySpan<Char>)

Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs

Sztringeket oszt fel részsztringekre a megadott elválasztó karakterek alapján.

public:
 cli::array <System::String ^> ^ Split(ReadOnlySpan<char> separator);
public string[] Split(scoped ReadOnlySpan<char> separator);
member this.Split : ReadOnlySpan<char> -> string[]
Public Function Split (separator As ReadOnlySpan(Of Char)) As String()

Paraméterek

separator
ReadOnlySpan<Char>

Elválasztó karakterek vagy üres, elválasztójeleket nem tartalmazó span.

Válaszok

String[]

Olyan tömb, amelynek elemei a példány egy vagy több karakterével separatortagolt részszűkítéseit tartalmazzák.

A következőre érvényes:

Split(Char[])

Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs

Sztringeket oszt fel részsztringekre a megadott elválasztó karakterek alapján.

public:
 cli::array <System::String ^> ^ Split(... cli::array <char> ^ separator);
public string[] Split(params char[] separator);
public string[] Split(params char[]? separator);
member this.Split : char[] -> string[]
Public Function Split (ParamArray separator As Char()) As String()

Paraméterek

separator
Char[]

Határoló karakterekből álló tömb, üres tömb, amely nem tartalmaz elválasztójeleket, vagy null.

Válaszok

String[]

Olyan tömb, amelynek elemei a példány egy vagy több karakterével separatortagolt részszűkítéseit tartalmazzák. További információkért lásd a Megjegyzések szakaszt.

Példák

Az alábbi példa bemutatja, hogyan nyerhet ki egyes szavakat egy szövegblokkból úgy, hogy a szóköz karaktert ( ) és a tabulátor karaktert (\t) elválasztóként kezeli. A felosztott sztring mindkét karaktert tartalmazza.

string s = "Today\tI'm going to school";
string[] subs = s.Split(' ', '\t');

foreach (var sub in subs)
{
    Console.WriteLine($"Substring: {sub}");
}

// This example produces the following output:
//
// Substring: Today
// Substring: I'm
// Substring: going
// Substring: to
// Substring: school
let s = "Today\tI'm going to school"
let subs = s.Split(' ', '\t')

for sub in subs do
    printfn $"Substring: {sub}"

// This example produces the following output:
//
// Substring: Today
// Substring: I'm
// Substring: going
// Substring: to
// Substring: school
Dim s As String = "Today" & vbTab & "I'm going to school"
Dim subs As String() = s.Split(" "c, Char.Parse(vbTab))

For Each substring In subs
    Console.WriteLine("Substring: " & substring)
Next

' This example produces the following output:
'
' Substring: Today
' Substring: I 'm
' Substring: going
' Substring: to
' Substring: school

Megjegyzések

Ha egy sztringet egy ismert karakterkészlet tagolt, a Split(Char[]) metódussal alsztringekre bonthatja.

A visszaküldött tömb elemei nem tartalmaznak elválasztó karaktereket. Ha például az elválasztó tömb tartalmazza a "-" karaktert, és az aktuális sztringpéldány értéke "aa-bb-cc", a metódus egy tömböt ad vissza, amely három elemet tartalmaz: "aa", "bb" és "cc".

Ha ez a példány nem tartalmazza a karakterek separatoregyikét sem, a visszaadott tömb egyetlen elemből áll, amely tartalmazza ezt a példányt.

Az egyes elemek separator külön elválasztó karaktert határoznak meg. Ha két elválasztó van egymás mellett, vagy ha a példány elején vagy végén egy elválasztó található, a visszaadott tömb megfelelő eleme tartalmaz Empty.

Az alábbi táblázat néhány példát mutat be.

Nyelv Sztringérték Elválasztó Visszaadott tömb
C# "42, 12, 19" new Char[] {',', ' '} {"42", "", "12", "", "19"}
Visual Basic "42, 12, 19" Char() = {";"c; " "c}) {"42", "", "12", "", "19"}
C# "42..12..19." új karakter[] {'.'} {"42", "", "12", "", "19", ""}
Visual Basic "42..12..19." Char() = {"." c} {"42", "", "12", "", "19", ""}
C# "Banán" új karakter[] {'.'} {"Banán"}
Visual Basic "Banán" Char() = {"." c} {"Banán"}
C# "Darb\nSmarba" új karakter[] {} {"Darb", "Smarba"}
Visual Basic "Darb" > vbLf > "Smarba" Char() = {} {"Darb", "Smarba"}
C# "Darb\nSmarba" null {"Darb", "Smarba"}
Visual Basic "Darb" > vbLf > "Smarba" Semmit {"Darb", "Smarba"}

Az elválasztó tömb

Az elválasztó minden eleme külön elválasztójelet határoz meg, amely egyetlen karakterből áll.

Ha az separator argumentum null nem tartalmaz vagy nem tartalmaz karaktereket, a metódus a szóköz karaktereket elválasztóként kezeli. A szóköz karaktereket a Unicode szabvány határozza meg, és a Char.IsWhiteSpace metódus akkor ad vissza, true ha egy üres szóköz karaktert adnak át neki.

String.Split(Char[]) és fordító túlterhelésének felbontása

Bár ennek a túlterhelésnek egyetlen paramétere String.Split egy karaktertömb, egyetlen karakterrel is meghívhatja, ahogy az alábbi példa is mutatja.

string value = "This is a short string.";
char delimiter = 's';
string[] substrings = value.Split(delimiter);
foreach (var substring in substrings)
    Console.WriteLine(substring);

// The example displays the following output:
//     Thi
//      i
//      a
//     hort
//     tring.
let value = "This is a short string."
let delimiter = 's'
let substrings = value.Split delimiter
for substring in substrings do
    printfn $"{substring}"

// The example displays the following output:
//     Thi
//      i
//      a
//     hort
//     tring.
    Dim value As String = "This is a short string."
    Dim delimiter As Char = "s"c
    Dim substrings() As String = value.Split(delimiter)
    For Each substring In substrings
        Console.WriteLine(substring)
    Next
End Sub

' The example displays the following output:
'
'     Thi
'      i
'      a
'     hort
'     tring.

Mivel a separator paramétert az attribútum díszíti, a ParamArrayAttribute fordítók egyetlen karaktert egyelemes karaktertömbként értelmeznek. A paramétert tartalmazó String.Split egyéb separator túlterhelések esetében nem ez a helyzet; argumentumként explicit módon át kell adnia ezeket a separator túlterheléseket egy karaktertömbnek.

Összehasonlítás részletei

A Split(Char[]) metódus kinyeri az ebben a sztringben lévő részsztringeket, amelyeket a tömb egy vagy több karaktere separator elválaszt, és ezeket az alsztringeket tömbelemekként adja vissza.

A Split(Char[]) metódus a kis- és nagybetűket megkülönböztető rendezési szabályokkal végzett összehasonlítások végrehajtásával keresi a határolójeleket. A szavak, sztringek és sorszámok rendezéséről további információt az System.Globalization.CompareOptions enumerálásban talál.

Teljesítménnyel kapcsolatos szempontok

A Split metódusok memóriát foglalnak le a visszaadott tömbobjektumhoz és egy String objektumhoz minden tömbelemhez. Ha az alkalmazás optimális teljesítményt igényel, vagy ha a memóriafoglalás kezelése kritikus fontosságú az alkalmazásban, fontolja meg a módszer vagy IndexOf a IndexOfAny módszer használatát. Lehetősége van arra is, hogy a Compare metódussal megkeressen egy sztringen belüli alsztringet.

Ha elválasztó karakterre szeretne felosztani egy sztringet, az elválasztó IndexOf karaktert a vagy a IndexOfAny metódussal keresheti meg a sztringben. Ha egy sztringet elválasztó sztringre szeretne felosztani, az elválasztó sztring első karakterének megkereséséhez használja a IndexOf vagy IndexOfAny a metódust. Ezután a Compare metódus használatával állapítsa meg, hogy az első karakter utáni karakterek megegyeznek-e az elválasztó sztring többi karakterével.

Emellett, ha ugyanazt a karakterkészletet használja a sztringek több Split metódushívásban való felosztására, érdemes lehet egyetlen tömböt létrehozni, és hivatkozni rá minden metódushívásban. Ez jelentősen csökkenti az egyes metódushívások többletterhelését.

Megjegyzések a hívókhoz

A .NET Framework 3.5-ös és korábbi verzióiban, ha a metódus egy < vagy nem tartalmaz karaktereket, a metódus a sztring felosztásához kissé eltérő szóköz karaktereket használ, mint a metódus a sztring levágásához. A .NET Framework 4-től kezdve mindkét metódus azonos Unicode-szóköz karakterkészletet használ.

Lásd még

A következőre érvényes:

Split(String, StringSplitOptions)

Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs
Forrás:
String.Manipulation.cs

A megadott sztringelválasztón alapuló sztringeket részszűrésekre osztja fel.

public string[] Split(string? separator, StringSplitOptions options = System.StringSplitOptions.None);
public string[] Split(string separator, StringSplitOptions options = System.StringSplitOptions.None);
member this.Split : string * StringSplitOptions -> string[]
Public Function Split (separator As String, Optional options As StringSplitOptions = System.StringSplitOptions.None) As String()

Paraméterek

separator
String

Egy sztring, amely elválasztja a sztringben lévő részsztringeket.

options
StringSplitOptions

Az enumerálási értékek bitenkénti kombinációja, amely meghatározza, hogy levágja-e az alsztringeket, és üres alsztringeket tartalmaz-e.

Válaszok

String[]

Olyan tömb, amelynek elemei az ebből a példányból származó részszűkítéseket tartalmazzák, amelyeket separatora rendszer elhatárolt.

A következőre érvényes: