为什么是字符串.TrimEnd未仅删除字符串中的最后一个字符

本文关键字:字符串 最后一个 删除 字符 TrimEnd 为什么 | 更新日期: 2023-09-27 18:21:12

我有如下的字符串

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个逗号?我只需要删除字符串中的最后一个字符

为什么是字符串.TrimEnd未仅删除字符串中的最后一个字符

为什么它会删除0之后的所有3个逗号?

因为这就是它的记录:

返回值:
trimChars参数中所有字符出现后保留的字符串将从当前字符串的末尾删除。

如果你只想删除最后一个字符,你可以使用:

if (str.EndsWith(","))
{
    str = str.Substring(0, str.Length - 1);
}

或者等效地:

if (str.EndsWith(","))
{
    str = str.Remove(str.Length - 1);
}

这是意料之中的事。String.TrimEnd从当前字符串对象中删除数组中指定的一组字符的所有后续出现

TrimEnd(char[] trimChars)方法从当前字符串中删除trimChars参数中的所有尾随字符当在字符串的末尾遇到不在trimChars中的第一个字符时,修剪操作停止

使用这个替代:

str = str.EndsWith(",") ? str.Substring(0, str.Length - 1) : str;

您可以使用这个:

string s = "2,44,AAA,BBB,1,0,,,";
s = s.Remove(s.Length-1, 1);

请记住,TrimEnd()不是一个就地函数。您应该将其结果重新分配给str:

str = str.TrimEnd(',')