Pregunta

Estoy tratando de dividirme en cada espacio " " ;, pero no me permitirá eliminar entradas vacías y luego encontrar la longitud, pero se trata como un error de sintaxis.

Mi código:

TextBox1.Text.Split(" ", StringSplitOptions.RemoveEmptyEntries).Length

¿Qué estoy haciendo mal?

¿Fue útil?

Solución

Bueno, el primer parámetro de la función Split debe ser una matriz de cadenas o caracteres. Prueba:

TextBox1.Text.Split(New String() {" "}, StringSplitOptions.RemoveEmptyEntries).Length

Es posible que no hayas notado esto antes cuando no especificaste el segundo parámetro. Esto se debe a que el método Split tiene una sobrecarga que toma un ParamArray. Esto significa que las llamadas a Split (" cadena 1 " ;, " cadena 2 " ;, " etc ") se convierten automáticamente en una llamada a Split (New String () { " cadena 1 " ;, " cadena 2 " ;, " etc "})

Otros consejos

Prueba:

TextBox1.Text.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).Length 

Esto es lo que hice:

TextBox1.Text = "1 2 3  5 6"
TextBox1.Text.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).Length

Resultado: Longitud = 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);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top