C # Split String utilizzando un delimitatore a lunghezza variabile

I tipi di stringa C # hanno un metodo per suddividersi quando viene rilevato un determinato delimitatore. Questo metodo restituisce una matrice di stringhe che contiene le sottostringhe delimitate da elementi di una matrice di caratteri Unicode specificata.

Divisione di stringhe utilizzando char []

Rompere una stringa di frase nelle sue singole parole con un delimitatore di spazio è un requisito comune. In questo modo, una chiamata al metodo String.Split () sarebbe simile a questa:

string words = "Questa è una lista di parole, con: un po 'di punteggiatura.";
string [] split = words.Split (new Char [] {", ',', '.', ':'});

Ciò produrrebbe l'array di stringhe:

{"Questo", "è", "un", "elenco", "di", "parole", "con", "a", "bit", "di", "punteggiatura"}

Dividere una stringa usando spazi con il metodo funziona come un incantesimo! Tuttavia, cosa succede se volessimo dividere usando un delimitatore più complesso?

Divisione di stringhe mediante stringa []

Per il nostro prossimo esempio, rendiamo il nostro delimitatore più complesso dividendo solo su occorrenze di virgola e spazio e occorrenze di più lettere come "ae"?

Possiamo usare anche altri metodi String.Split () per questo. Questo esempio dimostra il metodo String.Split (String [], StringSplitOptions). StringSplitOptions determina se il metodo .Split () restituirà elementi di matrice che includono una stringa vuota.

Ecco il nostro codice di esempio:

string words = "Questa è una lista di parole: estetica, prefetto";
string [] separators = {",", "ae"};
string [] split = words.Split (separators, StringSplitOptions.None);

Ciò produrrebbe l'array di stringhe:

{"Questa è una lista di parole:", "sthetics", "pr", "fect"}