Quiero eliminar los últimos tres caracteres de una cadena:
string myString = "abcdxxx";
Tenga en cuenta que la cadena son datos dinámicos.
Quiero eliminar los últimos tres caracteres de una cadena:
string myString = "abcdxxx";
Tenga en cuenta que la cadena son datos dinámicos.
Respuestas:
leer los últimos 3 caracteres de la cadena [Pregunta inicial]
Puede usar string.Substring y darle el índice inicial y obtendrá la subcadena desde el índice dado hasta el final.
myString.Substring(myString.Length-3)
Recupera una subcadena de esta instancia. La subcadena comienza en una posición de carácter especificada. MSDN
Editar , para publicación actualizada
Eliminar los últimos 3 caracteres de la cadena [pregunta actualizada]
Para eliminar los últimos tres caracteres de la cadena, puede usar string.Substring (Int32, Int32) y darle el índice inicial 0y el índice final tres menos que la longitud de la cadena . Obtendrá la subcadena antes de los últimos tres caracteres.
myString = myString.Substring(0, myString.Length-3);
Método String.Substring (Int32, Int32)
Recupera una subcadena de esta instancia. La subcadena comienza en una posición de carácter especificada y tiene una longitud especificada.
También puede usar el método String.Remove (Int32) para eliminar los últimos tres caracteres pasando el índice de inicio como longitud - 3 , se eliminará desde este punto hasta el final de la cadena.
myString = myString.Remove(myString.Length-3)
Devuelve una nueva cadena en la que se han eliminado todos los caracteres de la instancia actual, comenzando en una posición especificada y continuando hasta la última posición.
Leí todo esto, pero quería algo un poco más elegante. Solo para eliminar una cierta cantidad de caracteres del final de una cadena:
string.Concat("hello".Reverse().Skip(3).Reverse());
salida:
"he"
Enumerable.Reversealmacena la cadena en un char[]búfer, luego se almacena en un búfer nuevo char[]que es 3 más corto y luego genera un nuevo string(internamente con otro char[]). Un mejor enfoque sería new string("hello".Reverse().Skip(3)), o simplemente escribir su propia función de extensión de cadena AllBut(this string in, int i)que usa Substring.
Lengthalmacenado.
.SkipLast(n). No es necesario invertir nada. "hello".SkipLast(3)da"he"
myString.Remove(myString.Length-3);
myString = myString.Remove(myString.Length - 3)es decir.
string test = "abcdxxx";
test = test.Remove(test.Length - 3);
//output : abcd
Puede utilizar String.Removepara eliminar desde una posición especificada hasta el final de la cadena.
myString = myString.Remove(myString.Length - 3);
Probablemente no sea exactamente lo que está buscando, ya que dice que son "datos dinámicos", pero dada su cadena de ejemplo, esto también funciona:
? "abcdxxx".TrimEnd('x');
"abc"
myString.Substring(myString.Length - 3, 3)
Aquí hay ejemplos de subcadenas. >>
http://www.dotnetperls.com/substring
Refiera esos.
Eliminar los últimos caracteres de una cadena
TXTB_DateofReiumbursement.Text = (gvFinance.SelectedRow.FindControl("lblDate_of_Reimbursement") as Label).Text.Remove(10)
.Text.Remove(10)// se usa para eliminar texto desde el índice 10 hasta el final
Fácil. text = text.remove(text.length - 3). Reste 3 porque la Removefunción elimina todos los elementos de ese índice hasta el final de la cadena que es text.length. Entonces, si resto 3, obtengo la cadena con 3 caracteres eliminados.
Puede generalizar esto para eliminar acaracteres del final de la cadena, así:
text = text.remove(text.length - a)
Entonces, lo que hice fue la misma lógica. La removefunción elimina todos los elementos desde el interior hasta el final de la cadena, que es la longitud del texto. Entonces, si resto ade la longitud de la cadena, eso me dará la cadena con los acaracteres eliminados.
Por lo tanto, no solo funciona para 3, funciona para todos los enteros positivos, excepto si la longitud de la cadena es menor o igual a a, en ese caso devolverá un número negativo o 0.