Usando .Split para eliminar entradas vacias
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?
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);