Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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# 从字符串末尾删除空格的最佳方法_C#_String - Fatal编程技术网

C# 从字符串末尾删除空格的最佳方法

C# 从字符串末尾删除空格的最佳方法,c#,string,C#,String,可能重复: 我有许多字符串需要修剪空白,但是我只需要从末尾删除它们。它们被用于公司名称和个人名称,所以在字符串中间有空格是可以的。 您可以只使用Trim()或者如果您只想应用于endTrimEnd() 只从最后开始 String.TrimEnd() 是答案-仅从字符串末尾修剪所选字符 注意:您应该注意MSDN中的文档:此方法的行为发生了突破性的更改,因此实际行为取决于您所针对的.NET Framework版本: 来电者须知 NET Framework 3.5 SP1和早期版本维护 如果tri

可能重复:


我有许多字符串需要修剪空白,但是我只需要从末尾删除它们。它们被用于公司名称和个人名称,所以在字符串中间有空格是可以的。 您可以只使用
Trim()
或者如果您只想应用于end
TrimEnd()

只从最后开始

String.TrimEnd()

是答案-仅从字符串末尾修剪所选字符

注意:您应该注意MSDN中的文档:此方法的行为发生了突破性的更改,因此实际行为取决于您所针对的.NET Framework版本:

来电者须知
NET Framework 3.5 SP1和早期版本维护 如果trimChars是
null
或空数组,则此方法将修剪空白字符。 从.NET Framework 4开始,如果trimChars为null或空数组,则该方法 修剪所有Unicode空白字符(即生成
true
将它们传递到
Char.IsWhiteSpace
方法时返回值)。因此 更改后,.NET Framework 3.5 SP1及早期版本中的
Trim()方法将删除
两个字符,零宽度空格(U+200B)和零宽度不间断空格(U+FEFF),表示
.NET Framework 4及更高版本中的
Trim()
方法不会删除。 此外,.NET Framework 3.5 SP1和早期版本中的Trim()方法也可以 不修剪三个Unicode空白字符:蒙古语元音分隔符(U+180E), 窄无中断空间(U+202F)和中等数学空间(U+205F)


您可以只使用
s.TrimEnd(“”)

如果省略该参数,它将删除所有Unicode空白字符(这可能是您想要实现的,也可能不是)


在答案中解释你想要什么总是一个好主意。“最佳方法”通常取决于您的主要关注点是什么(可读性、速度、资源使用等)——但令人钦佩的是,TrimEnd()应该涵盖其中的大部分内容。@downvoter您愿意发表评论吗?您是否提到OP的句子“但是我只需要从末尾删除它们”?请注意,以这种方式进行的每次调用都会创建一个
char[]
,必须对其进行垃圾收集。@springy76:是的,但您无论如何都必须有一个分配(字符串是不可变的),所以我认为这里没有什么大问题。如果性能微优化真的那么重要(比如,代码在一个紧循环中),那么首先应该用
StringBuilder
替换
string
String.TrimEnd()
Strings.RTrim("string")
"string".TrimEnd()