• Domingo 22 de Diciembre de 2024, 14:04

Autor Tema:  Optimizar programa con split  (Leído 1059 veces)

pedroqv

  • Miembro activo
  • **
  • Mensajes: 55
    • Ver Perfil
Optimizar programa con split
« en: Jueves 3 de Diciembre de 2009, 19:02 »
0
El ejemplo clasico de usar split es el siguiente:

char[] limit = new char[] {' '};                     //Este es el caracter que va separar la frase en palabras
String frase= t1.Text;                               //Obtengo la frase de un TextBox              
foreach (string palabra in frase.Split(limit))          //Recorro el split con un foreach
{
       aviso.Text += palabra+" aa ";       //Voy mostrando y concatenando las palabras, pero hasta la ultima palabra llevara aa
}

Pero yo tengo la siguiente restriccion, siempre que vaya a mostrar una palabra ya dividida le agregue " aa " excepto a la ultima palabra, ahi es donde me tope con el foreach porque no supe como preguntarle en que elemento va o cual es el ultimo, por tal motivo me tuve que aventar esta mexicanada:


List<String> lista = new List<String>();       //Creo una lista donde voy acumular las palabras separadas
char[] limit = new char[] {' '};                     //Este es el caracter que va separar la frase en palabras
String frase= t1.Text;                               //Obtengo la frase de un TextBox              
foreach (string palabra in frase.Split(limit))          //Recorro el split con un foreach
{
        a.Add(palabra);       //agrego cada palabra a mi Lista
}


//Ahora sigue mostrar las palabras que estan en la lista por medio de un for, porque puedo tener mas control sobre el.
for (int i = 0; i < a.Count; i++)        
{
        aviso.Text += a.ToString();     //Voy mostrando las palabras que van apareciendo en la lista.
        if (i + 1 < a.Count)                     //Pregunto: todavia hay una siguiente palabra?
            aviso.Text += " aa ";              //entonces muestro aa despues de la palabra
}    

//Nota la ultima palabra por no tener siguiente no se le agrega aa, ¿Como puedo realizar esto con el puro foreach u otra clase?