c# .net vb.net

c# - Eliminar un personaje de mi generador de cuerdas



.net vb.net (6)

Tengo el siguiente generador de cadenas como msrtResult, que es bastante largo:

mstrResult.Append(rtbResult.Text).Append("})})" + Environment.NewLine)

¿Cómo puedo eliminar el último "," de mstrResult Now? (Está en el medio de ese mstrResult y no es el último carácter de la cadena completa, ya que le agrego cadenas) Debería hacerlo antes de agregar la nueva línea. Gracias


Agregue una extensión StringBuilder.

public static StringBuilder RemoveLast(this StringBuilder sb, string value) { if(sb.Length < 1) return sb; sb.Remove(sb.ToString().LastIndexOf(value), value.Length); return sb; }

luego invocar:

yourStringBuilder.RemoveLast(",");


Para eliminar el último carácter que adjuntó, utilice a continuación: (Esto es VB pero C debería funcionar de manera similar)

Dim c As New StringBuilder c.Remove(c.Length - 1, 1)


Puede usar StringBuilder.Remove() si conoce la posición de los caracteres que desea eliminar.

Me imagino que sería más fácil no agregarlo en primer lugar.

Tu pregunta actualizada habla sobre eliminar el último carácter de coma. Supongo que quieres hacer esto para evitar crear un mensaje que se vea así:

Mi lista de compras contenía leche, huevos, mantequilla y pescado.

Armarías esto en un bucle, iterando sobre una matriz. Por lo general, puede escribir el ciclo de modo que simplemente elija (por ejemplo, con una instrucción if) no agregar el comando cuando se encuentre en la iteración final del ciclo.


Tratar

mstrResult.Remove( mstrResult.Length - 1 - Environment.NewLine.Length , Environment.NewLine.Length);


Usted puede simplemente disminuir la longitud para acortar la cadena (C #):

mstrResult.Length -= 1;

EDITAR:

Después de que hayas actualizado tu pregunta, creo que sé lo que quieres :) ¿Qué tal esto?

mstrResult.Append(rtbResult.Text).Append("})})" + Environment.NewLine); var index = mstrResult.ToString().LastIndexOf('',''); if (index >= 0) mstrResult.Remove(index, 1);


Utilizar:

stringbuilder blahh = new stringbuilder() int searchKey = blahh.LastIndexOf('','');

luego llame

blahh.Remove( searchKey, 1).Insert(searchKey, " and"); or a blank.