Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么string.TrimEnd不能只删除字符串中的最后一个字符_C#_String_Trim - Fatal编程技术网

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

C# 为什么string.TrimEnd不能只删除字符串中的最后一个字符,c#,string,trim,C#,String,Trim,我有下面的字符串 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之后的所有3个逗号 因为这就是它要做的: 返回值: 从当前字符串末尾删除tr

我有下面的字符串

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之后的所有3个逗号

因为这就是它要做的:

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

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

if (str.EndsWith(","))
{
    str = str.Substring(0, str.Length - 1);
}
或相当于:

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

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

该方法从当前字符串中删除
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(',')

这将删除任何字符,不管它是否是逗号。我不知道你是否误解了。。。假设字符串为:
strings=“2,44,AAA,BBB,1,0,,,123
,会发生什么?@DannyBeckett这是对这个问题的合理解释,依我看。如果已经知道字符串以逗号结尾,就不需要检查了。@DannyBeckett-I在字符串中具体回答了这种情况。我知道这不是一个通用的方法,但在这种情况下,它可以是一个way@DannyBeckett:请不要从我的代码中删除大括号。我个人的编码风格(也是我工作过的每家公司都采用的编码风格)是始终使用大括号表示循环、
if
语句等。它避免了缩进可能意味着代码的行为是单向的问题,而实际上代码的行为是不同的。