2014-12-02 50 views
2

我想调整前导空格和单引号使用一个调用Trim而不调用它两次,如下所示。C#如何修剪空白字符和其他字符

string s = " 'hello'"; 
var newString = s.Trim().Trim('\''); 

我不想使用

var newString = s.TrimStart().Trim(''\'). 

要么因为它是两个呼叫。

+0

_ “前导空格” _意味着你要使用['TrimStart'(http://msdn.microsoft。 com/en-us/library/system.string.trimstart(v = vs.110).aspx) – 2014-12-02 17:00:01

+0

这个问题没有错。 +1来补偿downvote。 – Cyberherbalist 2014-12-02 17:02:01

+0

够公平的,但我没有看到对该投票的近距离投票,或对此的评论。我发现这个问题很有价值,因为在所有这些年来,我从来没有碰到Trim()有过parms的编码 - 我从来不需要它。 – Cyberherbalist 2014-12-02 17:07:00

回答

9

使用接受多个字符的overload of Trim

string s = " 'hello'"; 
var newString = s.Trim(' ', '\''); 

虽然有一些注意事项:

  • 你的问题,只提到领先空白,但Trim删除尾随字符为好。如果您只想要前导字符,请改用TrimStart
  • 此解决方案仅删除全部空格,并非全部为空格。从技术上讲,你将不得不添加所有characters that are considered "whitespace"。如果你需要修剪的不仅仅是空间,那么两次调用Trim将会更清洁。
  • 这种解决方案也修剪空白撇号内:

    string s = " ' hello'"; 
    var newString = s.Trim(' ', '\''); // returns "hello" 
    
+0

其实这不起作用,因为在我的情况下,主角是标签,也许还有其他空白字符。我需要的东西代表了Trim()的等价物。我想我可以添加所有空白字符? – declouet 2014-12-02 18:05:26

+1

@ user2449323当然(根据我的回答中的链接,有25个),或者只是指定标签或只是调用两次“修剪”(这将是更清洁的恕我直言,而不是指定25个字符修剪)。 – 2014-12-02 18:48:56