Divisão de string C#

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.
  • optionsO parâmetro permite cortar a substring ou incluir substrings vazias combinando os valores de enumeração bit a bit.

O StringSplitOptionstem 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
3Linguagem 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
 3Linguagem de código:  C#  ( cs )

Para remover o espaço ao dividir a string, você pode usar o StringSplitOptionsargumento 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
3Linguagem de código:  C#  ( cs )

Se a entrada tiver uma string vazia, você pode usar a RemoveEmptyEntriesopçã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
3Linguagem 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
4Linguagem 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, countespecifica 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
PMLinguagem de código:  C#  ( cs )

Neste exemplo, usamos o Split()método para dividir uma string de tempo por caracteres :e spacee 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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *