• Lunes 18 de Noviembre de 2024, 05:43

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

pedroqv

  • Miembro activo
  • **
  • Mensajes: 55
    • Ver Perfil
Optimizar programa con split
« en: Jueves 3 de Diciembre de 2009, 19:03 »
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?

tannke

  • Miembro MUY activo
  • ***
  • Mensajes: 152
  • Nacionalidad: es
    • Ver Perfil
Re: Optimizar programa con split
« Respuesta #1 en: Viernes 4 de Diciembre de 2009, 18:09 »
0
vamos ha hacerlo un poco mas facil:

char[] limit = new char[] {' '};
String frase= t1.Text;
String[] Seps =frase.Split(limit);  //Con esto ya tenemos una matriz con las letras separadas y nos ahorramos ese forerch.

for( int i=0; i< Seps.lengh; i++)
{
aviso.Text += Seps;

if( i + 1 < Seps.lengh)
aviso.Text += " aa ";

}

Esto es lo que estabas buscando?? Espero te sirva, sino avisa y haber que hacemos, saludos

pedroqv

  • Miembro activo
  • **
  • Mensajes: 55
    • Ver Perfil
Re: Optimizar programa con split
« Respuesta #2 en: Sábado 5 de Diciembre de 2009, 02:37 »
0
Si esto buscaba, solamente que no sabia que un arreglo estatico lo pudiera recibir.