Resumo : neste tutorial, você aprenderá como usar a string C# Dividir uma string em uma matriz de substrings com base em um delimitador especificado ou conjunto de delimitadores.
Introdução ao método C# String Split()
O método String divide uma string em uma matriz de substrings com base em um delimitador especificado ou em um conjunto de delimitadores.Split()
O Split()
método possui algumas sobrecargas que permitem personalizar as operações de divisão.
O seguinte mostra a sintaxe básica do Split()
método:
public string[] Split (
char separator,
StringSplitOptions options = System.StringSplitOptions.None
);
Linguagem de código: C# ( cs )
Nesta sintaxe:
separator
é um caractere que delimita as substrings na string atual.options
O parâmetro permite cortar a substring ou incluir substrings vazias combinando os valores de enumeração bit a bit.
O StringSplitOptions
tem os seguintes membros:
None
– opção padrão ao dividir strings.RemoveEmptyEntries
– omitir elementos do array que contenham strings vazias do resultado.TrimEntries
– apara os caracteres de espaço em branco de cada substring no resultado.
O Split()
método retorna um array cujos elementos contêm as substrings.
O exemplo a seguir mostra como usar o Split()
método para dividir uma string por vírgula:
using static System.Console;
var input = "1,2,3";
var numbers = input.Split(',');
foreach (var number in numbers)
{
WriteLine(number);
}
Linguagem de código: C# ( cs )
Saída:
1
2
3
Linguagem de código: C# ( cs )
Observe que 1, 2 e 3 são substrings, não números. Para convertê-los em números inteiros, você precisa usar o int.Parse()
método:
using static System.Console;
var input = "1,2,3";
var numbers = input.Split(',');
foreach (var number in numbers)
{
WriteLine(int.Parse(number));
}
Linguagem de código: C# ( cs )
Se a entrada tiver um espaço após cada vírgula, a substring do resultado incluirá o espaço. Por exemplo:
using static System.Console;
var input = "1, 2, 3";
var numbers = input.Split(',');
foreach (var number in numbers)
{
WriteLine(number);
}
Linguagem de código: C# ( cs )
Saída:
1
2
3
Linguagem de código: C# ( cs )
Para remover o espaço ao dividir a string, você pode usar o StringSplitOptions
argumento como este:
using static System.Console;
var input = "1, 2, 3";
var numbers = input.Split(
',',
StringSplitOptions.TrimEntries
);
foreach (var number in numbers)
{
WriteLine(number);
}
Linguagem de código: C# ( cs )
Saída:
1
2
3
Linguagem de código: C# ( cs )
Se a entrada tiver uma string vazia, você pode usar a RemoveEmptyEntries
opção para excluí-la do array resultante:
using static System.Console;
var input = "1, 2, , 3";
var numbers = input.Split(
',',
StringSplitOptions.TrimEntries |
StringSplitOptions.RemoveEmptyEntries
);
foreach (var number in numbers)
{
WriteLine(number);
}
Linguagem de código: C# ( cs )
Saída:
1
2
3
Linguagem de código: C# ( cs )
Usando C# String Split() para dividir uma string por vários delimitadores
O Split()
método possui uma sobrecarga que permite dividir uma string por vários delimitadores:
public string[] Split (
char[]? separator,
StringSplitOptions options
);
Linguagem de código: C# ( cs )
Nesta sintaxe, o separador é uma matriz de delimitadores que o Split()
método usa para dividir a string atual. Por exemplo:
using static System.Console;
var input = "1;2,3:4";
char[] delimiters = { ',', ';', ':' };
var numbers = input.Split(delimiters);
foreach (var number in numbers)
{
WriteLine(number);
}
Linguagem de código: C# ( cs )
Saída:
1
2
3
4
Linguagem de código: C# ( cs )
Usando C# String Split() para dividir uma string e limitar o número de substrings
Às vezes, você deseja limitar o número máximo de substrings ao dividir uma string. Para fazer isso, você usa a seguinte sobrecarga do Split()
método:
public string[] Split (
char[]? separator,
int count,
StringSplitOptions options
);
Linguagem de código: C# ( cs )
Nesta sintaxe, count
especifica o número máximo de substrings a serem retornadas. Por exemplo:
using static System.Console;
var input = "12:30 PM";
char[] delimiters = { ':',' ' };
var parts = input.Split(delimiters, 3);
foreach (var part in parts)
{
WriteLine(part);
}
Linguagem de código: C# ( cs )
Saída:
12
30
PM
Linguagem de código: C# ( cs )
Neste exemplo, usamos o Split()
método para dividir uma string de tempo por caracteres :
e space
e limitar o número de substrings retornadas a 3.
Outras sobrecargas de String Split() em C#
Além de aceitar um caractere ou um array de caracteres como delimitadores, permite Split()
passar uma string ou um array de strings como delimitadores:
public string[] Split (
string[]? separator,
StringSplitOptions options
);
public string[] Split (
string? separator,
int count,
StringSplitOptions options = System.StringSplitOptions.None
);
Linguagem de código: C# ( cs )
Resumo
- Use o método C# String
Split()
para dividir uma string por um ou mais delimitadores e retornar uma matriz de substrings.