Por que você tem tal string? Suponho que seja por causa de um loop que concatena vírgulas em ints. Você pode usar em seu string.Join(",", ints)lugar. Isso evita vírgulas à direita em primeiro lugar.
Essa é a melhor solução porque funciona para todas as strings, incluindo situações em que você não sabe com antecedência SE a string termina em vírgula ou não.
East of Nowhere
6
É por isso que ainda busco soluções até para coisas que eu poderia facilmente escrever. Normalmente, outra pessoa resolveu. :)
dpberry178
1
Portanto, as aspas simples não foram um erro. Hoje eu aprendi que char e string são definidos com aspas simples e duplas, respectivamente.
É muito improvável que você queira assim, mas eu quero apontar. E lembre-se, o String.Removemé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.
staticstringTrimTrailingChars(stringvalue)
{
int removeLength = 0;
for (int i = value.Length - 1; i >= 0; i--)
{
charlet = value[i];
if (let == '?' || let == '!' || let == '.')
{
removeLength++;
}
else
{
break;
}
}
if (removeLength > 0)
{
returnvalue.Substring(0, value.Length - removeLength);
}
returnvalue;
}
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.Respostas:
Experimente
string.TrimEnd()
:Something = Something.TrimEnd(',');
fonte
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.fonte
Tentar
string.Remove();
string str = "1,5,12,34,"; string removecomma = str.Remove(str.Length-1); MessageBox.Show(removecomma);
fonte
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; }
fonte
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
fonte
Experimente abaixo
Something..TrimEnd (",". ToCharArray ());
fonte
Dim psValue As String = "1,5,12,34,123,12" psValue = psValue.Substring(0, psValue.LastIndexOf(","))
resultado:
1,5,12,34,123
fonte