为什么string.TrimEnd不删除字符串中的最后一个字符

Jam*_*mes 12 c# string trim

我有如下字符串

2,44,AAA,BBB,1,0,,,
Run Code Online (Sandbox Code Playgroud)

所以现在我想删除上面字符串中的最后一个逗号.所以我希望输出为

2,44,AAA,BBB,1,0,,
Run Code Online (Sandbox Code Playgroud)

我决定使用TrimeEnd如下

str.ToString.TrimEnd(',')
Run Code Online (Sandbox Code Playgroud)

但它在0之后删除了所有逗号.所以我得到如下输出

2,44,AAA,BBB,1,0
Run Code Online (Sandbox Code Playgroud)

为什么在0之后删除所有3个逗号?我只需要删除字符串中的最后一个字符

Jon*_*eet 34

为什么在0之后删除所有3个逗号?

因为这是它记录的内容:

返回值:从当前字符串的末尾删除参数中
所有出现的字符后剩余trimChars的字符串.

如果您只想删除最终字符,可以使用:

if (str.EndsWith(","))
{
    str = str.Substring(0, str.Length - 1);
}
Run Code Online (Sandbox Code Playgroud)

或等效地:

if (str.EndsWith(","))
{
    str = str.Remove(str.Length - 1);
}
Run Code Online (Sandbox Code Playgroud)

  • @DannyBeckett:请不要从我的代码中删除大括号.我的个人编码风格(以及我曾在我所工作过的公司中实施的那种风格)是*总是*包括循环括号,`if`语句等.它避免了缩进可能意味着代码表现一个问题当它实际上表现不同时. (17认同)

cod*_*biz 5

这是预期的。从当前 String 对象中String.TrimEnd删除数组中指定的一组字符的所有尾随出现

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

改用这个:

str = str.EndsWith(",") ? str.Substring(0, str.Length - 1) : str;
Run Code Online (Sandbox Code Playgroud)