Quero remover os três últimos caracteres de uma string:
string myString = "abcdxxx";
Observe que a string é um dado dinâmico.
Quero remover os três últimos caracteres de uma string:
string myString = "abcdxxx";
Observe que a string é um dado dinâmico.
Respostas:
leia os últimos 3 caracteres da string [pergunta feita inicialmente]
Você pode usar string.Substring e fornecer o índice inicial e ele obterá a substring começando do índice dado até o fim.
myString.Substring(myString.Length-3)
Recupera uma substring desta instância. A substring começa em uma posição de caractere especificada. MSDN
Editar , para postagem atualizada
Remova os últimos 3 caracteres da string [pergunta atualizada]
Para remover os últimos três caracteres da string, você pode usar string.Substring (Int32, Int32) e fornecer o índice inicial 0e o índice final três a menos que o comprimento da string . Ele obterá a substring antes dos três últimos caracteres.
myString = myString.Substring(0, myString.Length-3);
Método String.Substring (Int32, Int32)
Recupera uma substring desta instância. A substring começa em uma posição de caractere especificada e tem um comprimento especificado.
Você também pode usar o método String.Remove (Int32) para remover os últimos três caracteres, passando o índice inicial como comprimento - 3 , ele removerá deste ponto ao final da string.
myString = myString.Remove(myString.Length-3)
Retorna uma nova string na qual todos os caracteres na instância atual, começando em uma posição especificada e continuando até a última posição, foram excluídos
Li tudo isso, mas queria algo um pouco mais elegante. Apenas para remover um certo número de caracteres do final de uma string:
string.Concat("hello".Reverse().Skip(3).Reverse());
resultado:
"he"
Enumerable.Reversearmazena a string em um char[], em seguida, em um novo char[]que é 3 mais curto e, em seguida, gera um novo string(com outro internamente char[]). Uma abordagem melhor seria new string("hello".Reverse().Skip(3)), ou apenas escrever sua própria função de extensão de string AllBut(this string in, int i)que use Substring.
Lengtharmazenados.
.SkipLast(n). Não há necessidade de reverter nada. "hello".SkipLast(3)dá"he"
myString.Remove(myString.Length-3);
myString = myString.Remove(myString.Length - 3)isso é.
string test = "abcdxxx";
test = test.Remove(test.Length - 3);
//output : abcd
Você pode usar String.Removepara excluir de uma posição especificada até o final da string.
myString = myString.Remove(myString.Length - 3);
Provavelmente não é exatamente o que você está procurando, já que diz que são "dados dinâmicos", mas, dada sua string de exemplo, isso também funciona:
? "abcdxxx".TrimEnd('x');
"abc"
myString.Substring(myString.Length - 3, 3)
Aqui estão alguns exemplos de substring. >>
http://www.dotnetperls.com/substring
Consulte aqueles.
Remova os últimos caracteres de uma string
TXTB_DateofReiumbursement.Text = (gvFinance.SelectedRow.FindControl("lblDate_of_Reimbursement") as Label).Text.Remove(10)
.Text.Remove(10)// usado para remover o texto do índice 10 ao final
Fácil. text = text.remove(text.length - 3). Eu subtraí 3 porque a Removefunção remove todos os itens desse índice para o final da string que étext.length . Portanto, se eu subtrair 3, obtenho a string com 3 caracteres removidos dela.
Você pode generalizar isso para remover acaracteres do final da string, assim:
text = text.remove(text.length - a)
Então o que fiz foi a mesma lógica. A removefunção remove todos os itens de seu interior até o final da string, que é o comprimento do texto. Então, se eu subtrair ado comprimento da corda, isso vai me dar a corda coma caracteres removidos.
Portanto, não funciona apenas para 3, funciona para todos os inteiros positivos, exceto se o comprimento da string for menor ou igual a a, nesse caso ela retornará um número negativo ou 0.