Cadena dividida en C # usando un delimitador de longitud variable

Los tipos de cadena C # tienen un método para dividirse cuando se encuentra un determinado delimitador. Este método devuelve una matriz de cadenas que contiene las subcadenas que están delimitadas por elementos de una matriz de caracteres Unicode especificada.

Dividiendo cuerdas usando char []

Romper una cadena de oraciones en sus palabras individuales con un delimitador de espacio es un requisito común. Hacer esto a través de una llamada al método String.Split () sería algo así:

string words = "Esta es una lista de palabras, con: un poco de puntuación.";
string [] split = words.Split (new Char [] {", ',', '.', ':'});

Esto produciría la cadena de cadenas:

{"This", "is", "a", "list", "of", "words", "with", "a", "bit", "of", "punctuation"}

¡Dividir una cadena usando espacios con el método funciona como un encanto! Sin embargo, ¿qué pasaría si quisiéramos dividir usando un delimitador más complejo?

Dividir cadenas utilizando cadena []

Para nuestro siguiente ejemplo, hagamos que nuestro delimitador sea más complejo dividiendo solo las ocurrencias de coma y espacio y las repeticiones de varias letras como "ae"?

Podemos usar otros métodos String.Split () para esto también. Este ejemplo muestra el método String.Split (String [], StringSplitOptions). StringSplitOptions determina si el método .Split () devolverá elementos de matriz que incluyen una cadena vacía.

Aquí está nuestro código de ejemplo:

string words = "Esta es una lista de palabras: estética, praefect";
string [] separators = {",", "ae"};
string [] split = words.Split (separators, StringSplitOptions.None);

Esto produciría la cadena de cadenas:

{"Esta es una lista de palabras:", "estética", "pr", "fect"}