C#: Ayuda para validar caracteres usando Split[CODE]public string[] quitaDemas(s

Iniciado por murdoc_87_1, 19 Abril 2010, 20:28 PM

0 Miembros y 1 Visitante están viendo este tema.

murdoc_87_1

public string[] quitaDemas(string cadena){
char[] delimiterChars= new char[11];
for(int i=33;i<10;i++){
int v=Numero((char)i);
if(v==33&&i>159||v==33&&i<128){delimiterChars[i]=(char)i;
Console.WriteLine("char="+delimiterChars[i].ToString()+" No.:"+i);
}
}
cadena = cadena.Replace("\r\n\t", "");//Quitamos llamadas de escape como \n y \r (saltos de línea)
string[] arr = cadena.Split(delimiterChars);//Ignoramos espacios, comas,punto y comas, puntos; para almacenar un arreglo con palabras y para cada salto de línea, un string vacío
return arr;
}


Hola que tal, ando muy engorrado con esta función que quiero implementar, quiero almacenar en la matriz delimeterChars los caracteres ASCII que no sean de 'a' a la 'z' y las minúsculas acentuadas, la ñ y la ü. la función "Numero" me regresa un 33 si el caracter mandado es diferente de lo anterior. La matriz me almacena los caracteres que quiero quitar, pero al poner la variable delimeterChars en split me provoca error de "Índice fuera de los límites" incluso si almaceno solo 10 caracteres... he calado la función split poniendo 5 chars ahí mismo y funciona el código pero con dichos chars. Me gustaría saber que error tengo o que limitante rebaso... Saludos

Atrum

hmm bueno pues no se si resuelva tu problema pero esto:

for(int i=33;i<10;i++)

Esta incoherente ya que si inicializas i en 33 y lo incrementas de 1 en 1 hasta que i sea menor que 10, es un ciclo infinito.

Como es tu funcion Numero?

murdoc_87_1

Así es, debería iniciar en 0, quería guardar los caracteres a partir del 33. Mi error consistía en otra función que ya validé bien. Gracias por la observación