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 0
e 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.Reverse
armazena 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.
Length
armazenados.
.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.Remove
para 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 Remove
funçã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 a
caracteres do final da string, assim:
text = text.remove(text.length - a)
Então o que fiz foi a mesma lógica. A remove
função remove todos os itens de seu interior até o final da string, que é o comprimento do texto. Então, se eu subtrair a
do 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.