我的字符串如下
2,44,AAA,BBB,1,0,,,
所以现在我想删除上面字符串中的最后一个逗号。所以我希望输出为
2,44,AAA,BBB,1,0,,
我决定使用下面的TrimeEnd
str.ToString.TrimEnd(',')
但它在0之后删除了所有逗号。所以我得到如下输出
2,44,AAA,BBB,1,0
为什么在0之后删除所有3个逗号?我只需要删除字符串
中的最后一个字符答案 0 :(得分:34)
为什么在0之后删除所有3个逗号?
因为这是documented要做的事情:
返回值
在trimChars
参数中出现所有字符后保留的字符串将从当前字符串的末尾删除。
如果您只想删除最终字符,可以使用:
if (str.EndsWith(","))
{
str = str.Substring(0, str.Length - 1);
}
或等效地:
if (str.EndsWith(","))
{
str = str.Remove(str.Length - 1);
}
答案 1 :(得分:4)
这是预期的。 String.TrimEnd
从当前String对象中删除数组中指定的一组字符的所有尾随事件
TrimEnd(char[] trimChars)
方法从当前字符串中删除trimChars
参数中的所有尾随字符。 当字符串末尾遇到trimChars
以外的第一个字符时,修剪操作停止
请改用:
str = str.EndsWith(",") ? str.Substring(0, str.Length - 1) : str;
答案 2 :(得分:1)
您可以使用:
string s = "2,44,AAA,BBB,1,0,,,";
s = s.Remove(s.Length-1, 1);
答案 3 :(得分:1)
请记住,TrimEnd()不是一个就地功能。您应该将其结果重新分配给str
:
str = str.TrimEnd(',')