我使用WinForms c#。我有以下字符串值:
string Something = "1,5,12,34,";
我需要删除字符串中的最后一个逗号。那么,我该如何删除它?
尝试使用string.TrimEnd()
函数:
Something = Something.TrimEnd(',');
King King's answer当然是正确的,而Tim Schmelter的评论也是在您的情况下很好的建议。
但是如果您真的想要删除字符串中的最后一个逗号,您应该找到最后一个逗号的索引并像这样删除它:
string s = "1,5,12,34,12345";
int index = s.LastIndexOf(',');
Console.WriteLine(s.Remove(index, 1));
输出将是:
1,5,12,3412345
这里是一个演示
。
虽然你可能不想使用这种方式,但我想指出它。请记住,String.Remove
方法不会删除原始字符串中的任何字符,它会返回新的字符串。
string.Remove();
。string str = "1,5,12,34,";
string removecomma = str.Remove(str.Length-1);
MessageBox.Show(removecomma);
TrimEnd方法接收一个字符数组,而不是字符串。
以下代码来自于Dot Net Perls,展示了如何更高效地执行与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;
}
Dim psValue As String = "1,5,12,34,123,12"
psValue = psValue.Substring(0, psValue.LastIndexOf(","))
输出:
1,5,12,34,123
请尝试以下代码:
某些内容..TrimEnd(",".ToCharArray());
','
代替",".ToCharArray()
。 - Mason或者您可以首先将它转换为 char 数组:
string Something = "1,5,12,34,";
char[] SomeGoodThing=Something.ToCharArray[];
indexed
。SomeGoodThing[0] -> '1'
SomeGoodThing[1] -> ','
玩转它
ProcessStr = ProcessStr.Replace(" ", "");
Emails = ProcessStr.TrimEnd(';');
string
呢?我猜是因为有一个循环将逗号连接到int
上。你可以使用string.Join(",", ints)
来代替。这样可以避免最初出现尾随逗号。 - Tim Schmelter