Eu uso WinForms c #. Tenho um valor de string como abaixo,
string Something = "1,5,12,34,";
Preciso remover a última vírgula em uma string. Então, como posso excluí-lo?
Eu uso WinForms c #. Tenho um valor de string como abaixo,
string Something = "1,5,12,34,";
Preciso remover a última vírgula em uma string. Então, como posso excluí-lo?
Respostas:
Experimente string.TrimEnd()
:
Something = Something.TrimEnd(',');
A resposta de King King está certa. Além disso, o comentário de Tim Schmelter também é uma boa sugestão no seu caso.
Mas se você realmente deseja remover a última vírgula em uma string , você deve encontrar o índice da última vírgula e remover like;
string s = "1,5,12,34,12345";
int index = s.LastIndexOf(',');
Console.WriteLine(s.Remove(index, 1));
A saída será;
1,5,12,3412345
Aqui a demonstration
.
É muito improvável que você queira assim, mas eu quero apontar. E lembre-se, o String.Remove
método não remove nenhum caractere da string original, ele retorna uma nova string.
O método TrimEnd usa uma matriz de caracteres de entrada e não uma string. O código abaixo de Dot Net Perls , mostra um exemplo mais eficiente de como executar a mesma funcionalidade do TrimEnd.
static string TrimTrailingChars(string value)
{
int removeLength = 0;
for (int i = value.Length - 1; i >= 0; i--)
{
char let = value[i];
if (let == '?' || let == '!' || let == '.')
{
removeLength++;
}
else
{
break;
}
}
if (removeLength > 0)
{
return value.Substring(0, value.Length - removeLength);
}
return value;
}
Ou você pode convertê-lo em Char Array primeiro:
string Something = "1,5,12,34,";
char[] SomeGoodThing=Something.ToCharArray[];
Agora você tem cada personagem indexed
:
SomeGoodThing[0] -> '1'
SomeGoodThing[1] -> ','
Brinque com isso
string
? Suponho que seja por causa de um loop que concatena vírgulas emint
s. Você pode usar em seustring.Join(",", ints)
lugar. Isso evita vírgulas à direita em primeiro lugar.