J'utilise WinForms c # .J'ai une valeur de chaîne comme ci-dessous,
string Something = "1,5,12,34,";
Je dois supprimer la dernière virgule d'une chaîne. Alors, comment puis-je le supprimer?
Essayez string.TrimEnd()
:
Something = Something.TrimEnd(',');
La réponse du roi roi a bien sûr raison. Aussi commentaire de Tim Schmelter est également une bonne suggestion dans votre cas.
Mais si vous voulez vraiment supprimer la dernière virgule d'une chaîne , vous devriez trouver l'index de la dernière virgule et enlever comme;
string s = "1,5,12,34,12345";
int index = s.LastIndexOf(',');
Console.WriteLine(s.Remove(index, 1));
La sortie sera;
1,5,12,3412345
Voici un demonstration
.
Il est trop peu probable que vous souhaitiez cela, mais je tiens à le préciser. Et rappelez-vous, la méthode String.Remove
ne supprime aucun caractère de la chaîne d'origine, elle renvoie une nouvelle chaîne.
Essayez string.Remove();
string str = "1,5,12,34,";
string removecomma = str.Remove(str.Length-1);
MessageBox.Show(removecomma);
La méthode TrimEnd prend un tableau de caractères d'entrée et non une chaîne . Le code ci-dessous de Dot Net Perls , montre un exemple plus efficace de la façon d'effectuer la même fonctionnalité que 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 vous pouvez d'abord le convertir en tableau de caractères en:
string Something = "1,5,12,34,";
char[] SomeGoodThing=Something.ToCharArray[];
Maintenant, vous avez chaque caractère indexed
:
SomeGoodThing[0] -> '1'
SomeGoodThing[1] -> ','
Jouer autour