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?

È stato utile?

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);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top