String.Split Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Returnerar en strängmatris som innehåller de delsträngar i den här instansen som avgränsas av element i en angiven sträng eller Unicode-teckenmatris.
Överlagringar
| Name | Description |
|---|---|
| Split(Rune, StringSplitOptions) | |
| Split(String[], Int32, StringSplitOptions) |
Delar upp en sträng i ett maximalt antal delsträngar baserat på angivna avgränsande strängar och, om du vill, alternativ. |
| Split(Rune, Int32, StringSplitOptions) | |
| Split(Char[], Int32, StringSplitOptions) |
Delar upp en sträng i ett maximalt antal delsträngar baserat på angivna avgränsande tecken och, om du vill, alternativ. |
| Split(Char, Int32, StringSplitOptions) |
Delar upp en sträng i ett maximalt antal delsträngar baserat på den angivna teckenavgränsaren, om du vill utelämna tomma delsträngar från resultatet. |
| Split(String[], StringSplitOptions) |
Delar upp en sträng i delsträngar baserat på en angiven avgränsande sträng och, om du vill, alternativ. |
| Split(String, Int32, StringSplitOptions) |
Delar upp en sträng i ett maximalt antal delsträngar baserat på en angiven avgränsande sträng och, om du vill, alternativ. |
| Split(Char[], StringSplitOptions) |
Delar upp en sträng i delsträngar baserat på angivna avgränsande tecken och alternativ. |
| Split(Char[], Int32) |
Delar upp en sträng i ett maximalt antal delsträngar baserat på angivna avgränsande tecken. |
| Split(Char, StringSplitOptions) |
Delar upp en sträng i delsträngar baserat på ett angivet avgränsande tecken och, om du vill, alternativ. |
| Split(ReadOnlySpan<Char>) |
Delar upp en sträng i delsträngar baserat på angivna avgränsande tecken. |
| Split(Char[]) |
Delar upp en sträng i delsträngar baserat på angivna avgränsande tecken. |
| Split(String, StringSplitOptions) |
Delar upp en sträng i understrängar som baseras på den angivna strängavgränsaren. |
Kommentarer
Split används för att dela upp en avgränsad sträng i understrängar. Du kan använda antingen en teckenmatris eller en strängmatris för att ange noll eller fler avgränsande tecken eller strängar. Om inga avgränsande tecken anges delas strängen med blankstegstecken.
Med överlagringar av Split metoden kan du begränsa antalet delsträngar som returneras av metoden ( Split(Char[], Int32) metoden), för att ange om du vill inkludera tomma strängar och/eller trimma delsträngar i resultatet ( Split(Char[], StringSplitOptions) metoderna och Split(String[], StringSplitOptions) ) eller att göra både och ( Split(Char[], Int32, StringSplitOptions) metoderna och Split(String[], Int32, StringSplitOptions) ).
Tip
Metoden Split är inte alltid det bästa sättet att bryta en avgränsad sträng i understrängar. Om du inte vill extrahera alla delsträngar i en avgränsad sträng, eller om du vill parsa en sträng baserat på ett mönster i stället för en uppsättning avgränsare, bör du överväga att använda reguljära uttryck eller kombinera någon av de sökmetoder som returnerar indexet för ett tecken med Substring metoden. Mer information finns i Extrahera delsträngar från en sträng.
Example
I följande exempel visas tre olika överlagringar av String.Split(). I det första exemplet anropas överbelastningen Split(Char[]) och skickas i en enda avgränsare.
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.
Som du ser inkluderas periodtecken (.) i två av delsträngarna. Om du vill undanta periodtecken kan du lägga till periodtecknet som ytterligare ett avgränsande tecken. I nästa exempel visas hur du gör detta.
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:
Perioderna är borta från delsträngarna, men nu har två extra tomma delsträngar inkluderats. Dessa tomma delsträngar representerar delsträngen mellan ett ord och den period som följer det. Om du vill utelämna tomma delsträngar från den resulterande matrisen kan du anropa överlagringen Split(Char[], StringSplitOptions) och ange StringSplitOptions.RemoveEmptyEntries för parametern options .
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
Avsnitten för enskilda överlagringar av String.Split() innehåller ytterligare exempel.
Split(Rune, StringSplitOptions)
- Källa:
- 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()
Parametrar
- separator
- Rune
- options
- StringSplitOptions
Returer
Gäller för
Split(String[], Int32, StringSplitOptions)
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
Delar upp en sträng i ett maximalt antal delsträngar baserat på angivna avgränsande strängar och, om du vill, alternativ.
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()
Parametrar
- separator
- String[]
Strängarna som avgränsar delsträngarna i den här strängen, en tom matris som inte innehåller några avgränsare eller null.
- count
- Int32
Det maximala antalet delsträngar som ska returneras.
- options
- StringSplitOptions
En bitvis kombination av uppräkningsvärdena som anger om delsträngar ska trimmas och innehålla tomma delsträngar.
Returer
En matris vars element innehåller delsträngarna i den här strängen som avgränsas av en eller flera strängar i separator. Mer information finns i avsnittet Anmärkningar.
- Attribut
Undantag
count är negativ.
options är inte ett av StringSplitOptions värdena.
Exempel
I följande exempel används StringSplitOptions uppräkningen för att inkludera eller exkludera delsträngar som genereras av Split metoden.
// 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]>
'
Kommentarer
Avgränsarsträngar ingår inte i elementen i den returnerade matrisen.
Om den här instansen inte innehåller någon av strängarna i separator, eller om parametern count är 1, består den returnerade matrisen av ett enda element som innehåller den här instansen.
Om parametern separator är null eller inte innehåller några tecken antas blankstegstecken vara avgränsare. Blankstegstecken definieras av Unicode-standarden och Char.IsWhiteSpace metoden returnerar true om de skickas till den.
Om du vill skicka null för parametern string[] separator måste du ange typen av null för att skilja anropet från vissa andra överlagringar, till exempel Split(Char[], Int32, StringSplitOptions). I följande exempel visas flera sätt att entydigt identifiera den här överbelastningen.
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)
Om parametern count är noll, eller om parametern options är RemoveEmptyEntries och längden på den här instansen är noll, returneras en tom matris.
Varje element separator i definierar en separat avgränsare som består av ett eller flera tecken. Om parametern options är None, och två avgränsare finns intill eller om en avgränsare hittas i början eller slutet av den här instansen, innehåller Emptymotsvarande matriselement .
Om det finns fler än count delsträngar i den här instansen returneras de första count minus 1 delsträngarna i de första count minus 1 elementen i returvärdet, och de återstående tecknen i den här instansen returneras i det sista elementet i returvärdet.
Om count är större än antalet delsträngar returneras de tillgängliga understrängarna och inget undantag genereras.
Avgränsarmatrisen
Om något av elementen i separator består av flera tecken betraktas hela understrängen som en avgränsare. Om ett av elementen i separator till exempel är "10" returnerar ett försök att dela strängen "This10is10a10string" den här matrisen med fyra element: { "This", "is", "a", "string." }.
Jämförelseinformation
Metoden Split extraherar delsträngarna i den här strängen som avgränsas av en eller flera av strängarna i parametern separator och returnerar dessa understrängar som element i en matris.
Metoden Split söker efter avgränsare genom att utföra jämförelser med hjälp av skiftlägeskänsliga ordningstalsregler. Mer information om ord, sträng och ordningstal finns i System.Globalization.CompareOptions uppräkningen.
Metoden Split ignorerar alla element i separator vars värde är null eller den tomma strängen ("").
För att undvika tvetydiga resultat när strängar i separator har tecken gemensamt fortsätter Split metoden från början till slutet av instansens värde och matchar det första elementet i separator som är lika med en avgränsare i instansen. Ordningen i vilken delsträngar påträffas i instansen har företräde framför ordningen på elementen i separator.
Tänk dig till exempel en instans vars värde är "abcdef". Om det första elementet i separator var "ef" och det andra elementet var "bcde" skulle resultatet av delningsåtgärden vara "a" och "f". Det beror på att delsträngen i instansen, "bcde", påträffas och matchar ett element i separator innan delsträngen "f" påträffas.
Men om det första elementet separator i var "bcd" och det andra elementet var "bc", skulle resultatet av delningsåtgärden vara "a" och "ef". Det beror på att "bcd" är den första avgränsare i separator som matchar en avgränsare i instansen. Om ordningen på avgränsarna var omvänd så att det första elementet var "bc" och det andra elementet var "bcd", skulle resultatet bli "a" och "def".
Prestandaöverväganden
Metoderna Split allokerar minne för det returnerade matrisobjektet och ett String objekt för varje matriselement. Om programmet kräver optimala prestanda eller om det är viktigt att hantera minnesallokering i ditt program kan du överväga att använda IndexOf metoden eller IndexOfAny och eventuellt Compare metoden för att hitta en delsträng i en sträng.
Om du delar upp en sträng med ett avgränsartecken använder du IndexOf metoden eller IndexOfAny för att hitta ett avgränsartecken i strängen. Om du delar upp en sträng i en avgränsarsträng använder du IndexOf metoden eller IndexOfAny för att hitta det första tecknet i avgränsarsträngen. Använd Compare sedan metoden för att avgöra om tecknen efter det första tecknet är lika med de återstående tecknen i avgränsarsträngen.
Om samma uppsättning tecken används för att dela upp strängar i flera Split metodanrop bör du dessutom överväga att skapa en enskild matris och referera till den i varje metodanrop. Detta minskar avsevärt de extra kostnaderna för varje metodanrop.
Anteckningar till anropare
I .NET Framework 3.5 och tidigare versioner använder metoden Split(Char[]) en separator som är null eller inte innehåller några tecken, en något annorlunda uppsättning blankstegstecken för att dela upp strängen än metoden Trim(Char[]) för att trimma strängen. Från och med .NET Framework 4 använder båda metoderna en identisk uppsättning Unicode-blankstegstecken.
Gäller för
Split(Rune, Int32, StringSplitOptions)
- Källa:
- 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()
Parametrar
- separator
- Rune
- count
- Int32
- options
- StringSplitOptions
Returer
Gäller för
Split(Char[], Int32, StringSplitOptions)
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
Delar upp en sträng i ett maximalt antal delsträngar baserat på angivna avgränsande tecken och, om du vill, alternativ.
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()
Parametrar
- separator
- Char[]
En matris med tecken som avgränsar delsträngarna i den här strängen, en tom matris som inte innehåller några avgränsare eller null.
- count
- Int32
Det maximala antalet delsträngar som ska returneras.
- options
- StringSplitOptions
En bitvis kombination av uppräkningsvärdena som anger om delsträngar ska trimmas och innehålla tomma delsträngar.
Returer
En matris som innehåller delsträngarna i den här strängen som avgränsas med ett eller flera tecken i separator. Mer information finns i avsnittet Anmärkningar.
- Attribut
Undantag
count är negativ.
options är inte ett av StringSplitOptions värdena.
Exempel
I följande exempel används StringSplitOptions uppräkningen för att inkludera eller exkludera delsträngar som genereras av Split metoden.
// 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]>
'
Kommentarer
Avgränsartecken ingår inte i elementen i den returnerade matrisen.
Om den här instansen inte innehåller något av tecknen i separator, eller om parametern count är 1, består den returnerade matrisen av ett enda element som innehåller den här instansen.
Om parametern separator är null eller inte innehåller några tecken antas blankstegstecken vara avgränsare. Blankstegstecken definieras av Unicode-standarden och Char.IsWhiteSpace metoden returnerar true om de skickas till den.
Om du vill skicka null för parametern char[] separator måste du ange typen av null för att skilja anropet från vissa andra överlagringar, till exempel Split(String[], Int32, StringSplitOptions). I följande exempel visas flera sätt att entydigt identifiera den här överbelastningen.
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)
Om parametern count är noll, eller om parametern options är RemoveEmptyEntries och längden på den här instansen är noll, returneras en tom matris.
Varje element separator i definierar ett separat avgränsartecken. Om parametern options är None, och två avgränsare finns intill eller om en avgränsare hittas i början eller slutet av den här instansen, innehåller Emptymotsvarande matriselement .
Om det finns fler än count delsträngar i den här instansen returneras de första count minus 1 delsträngarna i de första count minus 1 elementen i returvärdet, och de återstående tecknen i den här instansen returneras i det sista elementet i returvärdet.
Om count är större än antalet delsträngar returneras de tillgängliga understrängarna och inget undantag genereras.
Prestandaöverväganden
Metoderna Split allokerar minne för det returnerade matrisobjektet och ett String objekt för varje matriselement. Om programmet kräver optimala prestanda eller om det är viktigt att hantera minnesallokering i ditt program kan du överväga att använda IndexOf metoden eller IndexOfAny och eventuellt Compare metoden för att hitta en delsträng i en sträng.
Om du delar upp en sträng med ett avgränsartecken använder du IndexOf metoden eller IndexOfAny för att hitta ett avgränsartecken i strängen. Om du delar upp en sträng i en avgränsarsträng använder du IndexOf metoden eller IndexOfAny för att hitta det första tecknet i avgränsarsträngen. Använd Compare sedan metoden för att avgöra om tecknen efter det första tecknet är lika med de återstående tecknen i avgränsarsträngen.
Om samma uppsättning tecken används för att dela upp strängar i flera Split metodanrop bör du dessutom överväga att skapa en enskild matris och referera till den i varje metodanrop. Detta minskar avsevärt de extra kostnaderna för varje metodanrop.
Anteckningar till anropare
I .NET Framework 3.5 och tidigare versioner använder metoden Split(Char[]) en separator som är null eller inte innehåller några tecken, en något annorlunda uppsättning blankstegstecken för att dela upp strängen än metoden Trim(Char[]) för att trimma strängen. Från och med .NET Framework 4 använder båda metoderna en identisk uppsättning Unicode-blankstegstecken.
Gäller för
Split(Char, Int32, StringSplitOptions)
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
Delar upp en sträng i ett maximalt antal delsträngar baserat på den angivna teckenavgränsaren, om du vill utelämna tomma delsträngar från resultatet.
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()
Parametrar
- separator
- Char
Ett tecken som avgränsar delsträngarna i den här instansen.
- count
- Int32
Det maximala antalet element som förväntas i matrisen.
- options
- StringSplitOptions
En bitvis kombination av uppräkningsvärdena som anger om delsträngar ska trimmas och innehålla tomma delsträngar.
Returer
En matris som innehåller högst count delsträngar från den här instansen som avgränsas av separator.
Kommentarer
Om strängen redan har delats count – 1 gånger, men slutet av strängen inte har nåtts, kommer den sista strängen i den returnerade matrisen att innehålla den här instansens återstående avslutande delsträng, orörd.
Gäller för
Split(String[], StringSplitOptions)
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
Delar upp en sträng i delsträngar baserat på en angiven avgränsande sträng och, om du vill, alternativ.
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()
Parametrar
- separator
- String[]
En matris med strängar som avgränsar delsträngarna i den här strängen, en tom matris som inte innehåller några avgränsare eller null.
- options
- StringSplitOptions
En bitvis kombination av uppräkningsvärdena som anger om delsträngar ska trimmas och innehålla tomma delsträngar.
Returer
En matris vars element innehåller delsträngarna i den här strängen som avgränsas av en eller flera strängar i separator. Mer information finns i avsnittet Anmärkningar.
- Attribut
Undantag
options är inte ett av StringSplitOptions värdena.
Exempel
I följande exempel visas skillnaden i de matriser som returneras genom att anropa en strängmetod String.Split(String[], StringSplitOptions) med parametern options lika StringSplitOptions.None med och 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'
I följande exempel definieras en matris med avgränsare som innehåller skiljetecken och blankstegstecken. Om den här matrisen StringSplitOptions.RemoveEmptyEntries skickas tillsammans med värdet Split(String[], StringSplitOptions) till metoden returneras en matris som består av enskilda ord från strängen.
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
Observera att metoden anropas med options argumentet inställt på StringSplitOptions.RemoveEmptyEntries. Detta förhindrar att den returnerade matrisen inkluderar String.Empty värden som representerar tomma delsträngsmatchningar mellan skiljetecken och blankstegstecken.
Kommentarer
När en sträng avgränsas av en känd uppsättning strängar kan du använda metoden för att dela upp den Split i understrängar.
Avgränsarsträngar ingår inte i elementen i den returnerade matrisen. Om matrisen separator till exempel innehåller strängen "--" och värdet för den aktuella stränginstansen är "aa--bb--cc" returnerar metoden en matris som innehåller tre element: "aa", "bb" och "cc".
Om den här instansen inte innehåller någon av strängarna i separatorbestår den returnerade matrisen av ett enda element som innehåller den här instansen.
Om parametern options är RemoveEmptyEntries och längden på den här instansen är noll returnerar metoden en tom matris.
Varje element separator i definierar en separat avgränsare som består av ett eller flera tecken.
options Om argumentet är None, och två avgränsare ligger intill eller om en avgränsare hittas i början eller slutet av den här instansen, innehåller String.Emptymotsvarande matriselement . Om separator till exempel innehåller två element, "-" och "_", är värdet för stränginstansen "-_aa-_", och värdet för options argumentet är None, returnerar metoden en strängmatris med följande fem element:
String.Empty, som representerar den tomma sträng som föregår delsträngen "-" vid index 0.
String.Empty, som representerar den tomma strängen mellan delsträngen "-" vid index 0 och understrängen "_" vid index 1.
"aa".
String.Empty, som representerar den tomma strängen som följer delsträngen "-" vid index 4.
String.Empty, som representerar den tomma strängen som följer understrängen "_" vid index 5.
Avgränsarmatrisen
Om något av elementen i separator består av flera tecken betraktas hela understrängen som en avgränsare. Om ett av elementen i separator till exempel är "10" returnerar ett försök att dela strängen "This10is10a10string" följande matris med fyra element: { "This", "is", "a", "string." }.
Om parametern separator är null eller inte innehåller några icke-tomma strängar antas blankstegstecken vara avgränsare. Blankstegstecken definieras av Unicode-standarden och Char.IsWhiteSpace metoden returnerar true om de skickas till den.
Om du vill skicka null för parametern string[] separator måste du ange typen av null för att skilja anropet från vissa andra överlagringar, till exempel Split(Char[], StringSplitOptions). I följande exempel visas flera sätt att entydigt identifiera den här överbelastningen.
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)
Jämförelseinformation
Metoden Split extraherar delsträngarna i den här strängen som avgränsas av en eller flera av strängarna i parametern separator och returnerar dessa understrängar som element i en matris.
Metoden Split söker efter avgränsare genom att utföra jämförelser med hjälp av skiftlägeskänsliga ordningstalsregler. Mer information om ord, sträng och ordningstal finns i System.Globalization.CompareOptions uppräkningen.
Metoden Split ignorerar alla element i separator vars värde är null eller den tomma strängen ("").
För att undvika tvetydiga resultat när strängar i separator har tecken gemensamt fortsätter Split åtgärden från början till slutet av instansens värde och matchar det första elementet i separator som är lika med en avgränsare i instansen. Ordningen i vilken delsträngar påträffas i instansen har företräde framför ordningen på elementen i separator.
Tänk dig till exempel en instans vars värde är "abcdef". Om det första elementet i separator var "ef" och det andra elementet var "bcde" skulle resultatet av delningsåtgärden vara en strängmatris som innehåller två element, "a" och "f". Det beror på att delsträngen i instansen, "bcde", påträffas och matchar ett element i separator innan delsträngen "f" påträffas.
Men om det första elementet separator i var "bcd" och det andra elementet var "bc" skulle resultatet av delningsåtgärden vara en strängmatris som innehåller två element, "a" och "ef". Det beror på att "bcd" är den första avgränsare i separator som matchar en avgränsare i instansen. Om ordningen på avgränsarna var omvänd så att det första elementet var "bc" och det andra elementet var "bcd", skulle resultatet bli en strängmatris som innehåller två element, "a" och "def".
Prestandaöverväganden
Metoderna Split allokerar minne för det returnerade matrisobjektet och ett String objekt för varje matriselement. Om programmet kräver optimala prestanda eller om det är viktigt att hantera minnesallokering i ditt program kan du överväga att använda IndexOf metoden eller IndexOfAny och eventuellt Compare metoden för att hitta en delsträng i en sträng.
Om du delar upp en sträng med ett avgränsartecken använder du IndexOf metoden eller IndexOfAny för att hitta ett avgränsartecken i strängen. Om du delar upp en sträng i en avgränsarsträng använder du IndexOf metoden eller IndexOfAny för att hitta det första tecknet i avgränsarsträngen. Använd Compare sedan metoden för att avgöra om tecknen efter det första tecknet är lika med de återstående tecknen i avgränsarsträngen.
Om samma uppsättning tecken används för att dela upp strängar i flera Split metodanrop bör du dessutom överväga att skapa en enskild matris och referera till den i varje metodanrop. Detta minskar avsevärt de extra kostnaderna för varje metodanrop.
Anteckningar till anropare
I .NET Framework 3.5 och tidigare versioner använder metoden Split(Char[]) en separator som är null eller inte innehåller några tecken, en något annorlunda uppsättning blankstegstecken för att dela upp strängen än metoden Trim(Char[]) för att trimma strängen. Från och med .NET Framework 4 använder båda metoderna en identisk uppsättning Unicode-blankstegstecken.
Gäller för
Split(String, Int32, StringSplitOptions)
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
Delar upp en sträng i ett maximalt antal delsträngar baserat på en angiven avgränsande sträng och, om du vill, alternativ.
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()
Parametrar
- separator
- String
En sträng som avgränsar delsträngarna i den här instansen.
- count
- Int32
Det maximala antalet element som förväntas i matrisen.
- options
- StringSplitOptions
En bitvis kombination av uppräkningsvärdena som anger om delsträngar ska trimmas och innehålla tomma delsträngar.
Returer
En matris som innehåller högst count delsträngar från den här instansen som avgränsas av separator.
Kommentarer
Om strängen redan har delats count – 1 gånger, men slutet av strängen inte har nåtts, kommer den sista strängen i den returnerade matrisen att innehålla den här instansens återstående avslutande delsträng, orörd.
Gäller för
Split(Char[], StringSplitOptions)
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
Delar upp en sträng i delsträngar baserat på angivna avgränsande tecken och alternativ.
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()
Parametrar
- separator
- Char[]
En matris med tecken som avgränsar delsträngarna i den här strängen, en tom matris som inte innehåller några avgränsare eller null.
- options
- StringSplitOptions
En bitvis kombination av uppräkningsvärdena som anger om delsträngar ska trimmas och innehålla tomma delsträngar.
Returer
En matris vars element innehåller delsträngarna i den här strängen som avgränsas med ett eller flera tecken i separator. Mer information finns i avsnittet Anmärkningar.
- Attribut
Undantag
options är inte ett av StringSplitOptions värdena.
Exempel
I följande exempel används StringSplitOptions uppräkningen för att inkludera eller exkludera delsträngar som genereras av Split metoden.
// 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]>
'
Kommentarer
Avgränsartecken (tecknen i matrisen separator ) ingår inte i elementen i den returnerade matrisen. Om matrisen separator till exempel innehåller tecknet "-" och värdet för den aktuella stränginstansen är "aa-bb-cc" returnerar metoden en matris som innehåller tre element: "aa", "bb" och "cc".
Om den här instansen inte innehåller något av tecknen i separatorbestår den returnerade matrisen av ett enda element som innehåller den här instansen.
Om parametern options är RemoveEmptyEntries och längden på den här instansen är noll returnerar metoden en tom matris.
Varje element separator i definierar en separat avgränsare som består av ett enda tecken.
options Om argumentet är None, och två avgränsare ligger intill eller om en avgränsare hittas i början eller slutet av den här instansen, innehåller String.Emptymotsvarande matriselement . Om separator till exempel innehåller två element, '-' och '_', värdet för stränginstansen är "-_aa-_", och värdet för options argumentet är None, returnerar metoden en strängmatris med följande fem element:
String.Empty, som representerar den tomma sträng som föregår tecknet "-" vid index 0.
String.Empty, som representerar den tomma strängen mellan tecknet "-" vid index 0 och tecknet "_" vid index 1.
"aa".
String.Empty, som representerar den tomma strängen som följer tecknet "-" vid index 4.
String.Empty, som representerar den tomma strängen som följer tecknet "_" vid index 5.
Avgränsarmatrisen
Om parametern separator är null eller inte innehåller några tecken antas blankstegstecken vara avgränsare. Blankstegstecken definieras av Unicode-standarden och Char.IsWhiteSpace metoden returnerar true om de skickas till den.
Om du vill skicka null för parametern char[] separator måste du ange typen av null för att skilja anropet från vissa andra överlagringar, till exempel Split(String[], StringSplitOptions). I följande exempel visas flera sätt att entydigt identifiera den här överbelastningen.
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)
Jämförelseinformation
Metoden Split extraherar delsträngarna i den här strängen som avgränsas med ett eller flera av tecknen i parametern separator och returnerar dessa understrängar som element i en matris.
Metoden Split söker efter avgränsare genom att utföra jämförelser med hjälp av skiftlägeskänsliga ordningstalsregler. Mer information om ord, sträng och ordningstal finns i System.Globalization.CompareOptions uppräkningen.
Prestandaöverväganden
Metoderna Split allokerar minne för det returnerade matrisobjektet och ett String objekt för varje matriselement. Om programmet kräver optimala prestanda eller om det är viktigt att hantera minnesallokering i ditt program kan du överväga att använda IndexOf metoden eller IndexOfAny och eventuellt Compare metoden för att hitta en delsträng i en sträng.
Om du delar upp en sträng med ett avgränsartecken använder du IndexOf metoden eller IndexOfAny för att hitta ett avgränsartecken i strängen. Om du delar upp en sträng i en avgränsarsträng använder du IndexOf metoden eller IndexOfAny för att hitta det första tecknet i avgränsarsträngen. Använd Compare sedan metoden för att avgöra om tecknen efter det första tecknet är lika med de återstående tecknen i avgränsarsträngen.
Om samma uppsättning tecken används för att dela upp strängar i flera Split metodanrop bör du dessutom överväga att skapa en enskild matris och referera till den i varje metodanrop. Detta minskar avsevärt de extra kostnaderna för varje metodanrop.
Anteckningar till anropare
I .NET Framework 3.5 och tidigare versioner använder metoden Split(Char[]) en separator som är null eller inte innehåller några tecken, en något annorlunda uppsättning blankstegstecken för att dela upp strängen än metoden Trim(Char[]) för att trimma strängen. Från och med .NET Framework 4 använder båda metoderna en identisk uppsättning Unicode-blankstegstecken.
Gäller för
Split(Char[], Int32)
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
Delar upp en sträng i ett maximalt antal delsträngar baserat på angivna avgränsande tecken.
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()
Parametrar
- separator
- Char[]
En matris med tecken som avgränsar delsträngarna i den här strängen, en tom matris som inte innehåller några avgränsare eller null.
- count
- Int32
Det maximala antalet delsträngar som ska returneras.
Returer
En matris vars element innehåller delsträngarna i den här instansen som avgränsas med ett eller flera tecken i separator. Mer information finns i avsnittet Anmärkningar.
Undantag
count är negativ.
Exempel
I följande exempel visas hur count du kan använda för att begränsa antalet strängar som returneras av Split.
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"
Kommentarer
Avgränsartecken ingår inte i elementen i den returnerade matrisen.
Om den här instansen inte innehåller något av tecknen i separatorbestår den returnerade matrisen av ett enda element som innehåller den här instansen. Om count är noll returneras en tom matris.
Om parametern separator är null eller inte innehåller några tecken antas blankstegstecken vara avgränsare. Blankstegstecken definieras av Unicode-standarden och Char.IsWhiteSpace metoden returnerar true om de skickas till den.
Varje element separator i definierar ett separat avgränsartecken. Om två avgränsare finns intill, eller om en avgränsare hittas i början eller slutet av den här instansen, innehåller Emptymotsvarande matriselement .
Om det finns fler än count delsträngar i den här instansen returneras de första count - 1 delsträngarna i de första count - 1 elementen i returvärdet, och de återstående tecknen i den här instansen returneras i det sista elementet i returvärdet.
Om count är större än antalet delsträngar returneras de tillgängliga understrängarna och inget undantag genereras.
I följande tabell visas några exempel.
| Språk | Strängvärde | Avskiljare | Returnerad matris |
|---|---|---|---|
| C# | "42, 12, 19" | new Char[] {',', ' '} | {"42", "", "12", "", "19"} |
| Visual Basic | "42, 12, 19" | Char() = {","c, " "c}) | {"42", "", "12", "", "19"} |
| C# | "42..12..19." | new Char[] {'.'} | {"42", "", "12", "", "19", ""} |
| Visual Basic | "42..12..19." | Char() = {"." c} | {"42", "", "12", "", "19", ""} |
| C# | "Banan" | new Char[] {'.'} | {"Banan"} |
| Visual Basic | "Banan" | Char() = {"." c} | {"Banan"} |
| C# | "Darb\nSmarba" | nytt tecken[] {} | {"Darb", "Smarba"} |
| Visual Basic | "Darb" & vbLf & "Smarba" | Char() = {} | {"Darb", "Smarba"} |
| C# | "Darb\nSmarba" | noll | {"Darb", "Smarba"} |
| Visual Basic | "Darb" & vbLf & "Smarba" | Ingenting | {"Darb", "Smarba"} |
Prestandaöverväganden
Metoderna Split allokerar minne för det returnerade matrisobjektet och ett String objekt för varje matriselement. Om programmet kräver optimala prestanda eller om det är viktigt att hantera minnesallokering i ditt program kan du överväga att använda IndexOf metoden eller IndexOfAny och eventuellt Compare metoden för att hitta en delsträng i en sträng.
Om du delar upp en sträng med ett avgränsartecken använder du IndexOf metoden eller IndexOfAny för att hitta ett avgränsartecken i strängen. Om du delar upp en sträng i en avgränsarsträng använder du IndexOf metoden eller IndexOfAny för att hitta det första tecknet i avgränsarsträngen. Använd Compare sedan metoden för att avgöra om tecknen efter det första tecknet är lika med de återstående tecknen i avgränsarsträngen.
Om samma uppsättning tecken används för att dela upp strängar i flera Split metodanrop bör du dessutom överväga att skapa en enskild matris och referera till den i varje metodanrop. Detta minskar avsevärt de extra kostnaderna för varje metodanrop.
Anteckningar till anropare
I .NET Framework 3.5 och tidigare versioner använder metoden Split(Char[]) en separator som är null eller inte innehåller några tecken, en något annorlunda uppsättning blankstegstecken för att dela upp strängen än metoden Trim(Char[]) för att trimma strängen. Från och med .NET Framework 4 använder båda metoderna en identisk uppsättning Unicode-blankstegstecken.
Se även
- Char
- Array
- Int32
- Concat(Object)
- Insert(Int32, String)
- Join(String, String[])
- Remove(Int32, Int32)
- Replace(Char, Char)
- Substring(Int32)
- Trim(Char[])
Gäller för
Split(Char, StringSplitOptions)
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
Delar upp en sträng i delsträngar baserat på ett angivet avgränsande tecken och, om du vill, alternativ.
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()
Parametrar
- separator
- Char
Ett tecken som avgränsar delsträngarna i den här strängen.
- options
- StringSplitOptions
En bitvis kombination av uppräkningsvärdena som anger om delsträngar ska trimmas och innehålla tomma delsträngar.
Returer
En matris vars element innehåller delsträngarna från den här instansen som avgränsas av separator.
Gäller för
Split(ReadOnlySpan<Char>)
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
Delar upp en sträng i delsträngar baserat på angivna avgränsande tecken.
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()
Parametrar
- separator
- ReadOnlySpan<Char>
Ett intervall med avgränsande tecken eller ett tomt intervall som inte innehåller några avgränsare.
Returer
En matris vars element innehåller delsträngarna från den här instansen som avgränsas med ett eller flera tecken i separator.
Gäller för
Split(Char[])
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
Delar upp en sträng i delsträngar baserat på angivna avgränsande tecken.
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()
Parametrar
- separator
- Char[]
En matris med avgränsande tecken, en tom matris som inte innehåller några avgränsare eller null.
Returer
En matris vars element innehåller delsträngarna från den här instansen som avgränsas med ett eller flera tecken i separator. Mer information finns i avsnittet Anmärkningar.
Exempel
I följande exempel visas hur du extraherar enskilda ord från ett textblock genom att behandla blankstegstecknet ( ) och tabbtecknet (\t) som avgränsare. Strängen som delas innehåller båda dessa tecken.
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
Kommentarer
När en sträng avgränsas av en känd uppsättning tecken kan du använda metoden för att dela upp den Split(Char[]) i delsträngar.
Avgränsartecken ingår inte i elementen i den returnerade matrisen. Om avgränsarmatrisen till exempel innehåller tecknet "-" och värdet för den aktuella stränginstansen är "aa-bb-cc", returnerar metoden en matris som innehåller tre element: "aa", "bb" och "cc".
Om den här instansen inte innehåller något av tecknen i separatorbestår den returnerade matrisen av ett enda element som innehåller den här instansen.
Varje element separator i definierar ett separat avgränsartecken. Om två avgränsare finns intill, eller om en avgränsare hittas i början eller slutet av den här instansen, innehåller Emptymotsvarande element i den returnerade matrisen .
I följande tabell visas några exempel.
| Språk | Strängvärde | Avskiljare | Returnerad matris |
|---|---|---|---|
| C# | "42, 12, 19" | new Char[] {',', ' '} | {"42", "", "12", "", "19"} |
| Visual Basic | "42, 12, 19" | Char() = {","c, " "c}) | {"42", "", "12", "", "19"} |
| C# | "42..12..19." | new Char[] {'.'} | {"42", "", "12", "", "19", ""} |
| Visual Basic | "42..12..19." | Char() = {"." c} | {"42", "", "12", "", "19", ""} |
| C# | "Banan" | new Char[] {'.'} | {"Banan"} |
| Visual Basic | "Banan" | Char() = {"." c} | {"Banan"} |
| C# | "Darb\nSmarba" | nytt tecken[] {} | {"Darb", "Smarba"} |
| Visual Basic | "Darb" & vbLf & "Smarba" | Char() = {} | {"Darb", "Smarba"} |
| C# | "Darb\nSmarba" | noll | {"Darb", "Smarba"} |
| Visual Basic | "Darb" & vbLf & "Smarba" | Ingenting | {"Darb", "Smarba"} |
Avgränsarmatrisen
Varje element i avgränsaren definierar en separat avgränsare som består av ett enda tecken.
Om argumentet separator är null eller inte innehåller några tecken behandlar metoden blankstegstecken som avgränsare. Blankstegstecken definieras av Unicode-standarden och Char.IsWhiteSpace metoden returnerar true om ett blankstegstecken skickas till den.
String.Split(Char[]) och kompilatoröverlagringsmatchning
Även om den enda parametern för den här överlagringen av String.Split är en teckenmatris kan du anropa den med ett enda tecken, som i följande exempel visas.
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.
Eftersom parametern separator är dekorerad med ParamArrayAttribute attributet tolkar kompilatorerna ett enskilt tecken som en matris med ett element. Detta gäller inte för andra String.Split överlagringar som innehåller en separator parameter. Du måste uttryckligen skicka dessa överlagringar till en teckenmatris som separator argument.
Jämförelseinformation
Metoden Split(Char[]) extraherar delsträngarna i den här strängen som avgränsas med ett eller flera av tecknen i matrisen separator och returnerar dessa understrängar som element i en matris.
Metoden Split(Char[]) söker efter avgränsare genom att utföra jämförelser med hjälp av skiftlägeskänsliga ordningstalsregler. Mer information om ord, sträng och ordningstal finns i System.Globalization.CompareOptions uppräkningen.
Prestandaöverväganden
Metoderna Split allokerar minne för det returnerade matrisobjektet och ett String objekt för varje matriselement. Om programmet kräver optimala prestanda eller om det är viktigt att hantera minnesallokering i ditt program bör du överväga att använda IndexOf metoden eller IndexOfAny . Du kan också använda Compare metoden för att hitta en delsträng i en sträng.
Om du vill dela en sträng med ett avgränsartecken använder du IndexOf metoden eller IndexOfAny för att hitta ett avgränsartecken i strängen. Om du vill dela en sträng i en avgränsarsträng använder du IndexOf metoden eller IndexOfAny för att hitta det första tecknet i avgränsarsträngen. Använd Compare sedan metoden för att avgöra om tecknen efter det första tecknet är lika med de återstående tecknen i avgränsarsträngen.
Om samma uppsättning tecken används för att dela upp strängar i flera Split metodanrop bör du dessutom överväga att skapa en enskild matris och referera till den i varje metodanrop. Detta minskar avsevärt de extra kostnaderna för varje metodanrop.
Anteckningar till anropare
I .NET Framework 3.5 och tidigare versioner använder metoden Split(Char[]) en separator som är null eller inte innehåller några tecken, en något annorlunda uppsättning blankstegstecken för att dela upp strängen än metoden Trim(Char[]) för att trimma strängen. Från och med .NET Framework 4 använder båda metoderna en identisk uppsättning Unicode-blankstegstecken.
Se även
- Char
- Concat(Object)
- Insert(Int32, String)
- Join(String, String[])
- Remove(Int32, Int32)
- Replace(Char, Char)
- Substring(Int32)
- Trim(Char[])
Gäller för
Split(String, StringSplitOptions)
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
- Källa:
- String.Manipulation.cs
Delar upp en sträng i understrängar som baseras på den angivna strängavgränsaren.
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()
Parametrar
- separator
- String
En sträng som avgränsar delsträngarna i den här strängen.
- options
- StringSplitOptions
En bitvis kombination av uppräkningsvärdena som anger om delsträngar ska trimmas och innehålla tomma delsträngar.
Returer
En matris vars element innehåller delsträngarna från den här instansen som avgränsas av separator.