Utilizzo di .Split per rimuovere voci vuote
Domanda
Sto cercando di dividere in ogni spazio " " ;, ma non mi consente di rimuovere voci vuote e di trovare la lunghezza, ma viene trattato come un errore di sintassi.
Il mio codice:
TextBox1.Text.Split(" ", StringSplitOptions.RemoveEmptyEntries).Length
Cosa sto sbagliando?
Soluzione
Bene, il primo parametro della funzione Split
deve essere un array di stringhe o caratteri. Prova:
TextBox1.Text.Split(New String() {" "}, StringSplitOptions.RemoveEmptyEntries).Length
Potresti non averlo notato prima quando non hai specificato il secondo parametro. Questo perché il metodo Split
ha un sovraccarico che accetta un ParamArray. Ciò significa che le chiamate a Split (" string 1 " ;, " string 2 " ;, " etc ")
vengono convertite automaticamente in una chiamata in Split (New String () { " stringa 1 " ;, " stringa 2 " ;, " etc "})
Altri suggerimenti
Prova:
TextBox1.Text.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).Length
Questo è quello che ho fatto:
TextBox1.Text = "1 2 3 5 6"
TextBox1.Text.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).Length
Risultato: lunghezza = 5
// char array is used instead of normal char because ".Split()"
// accepts a char array
char[] c = new char[1];
//space character in array
c[0] = ' ';
// a new string array is created which will hold whole one line
string[] Warray = Line.Split(c, StringSplitOptions.RemoveEmptyEntries);