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