C#中Trim()、TrimStart()、TrimEnd()的错误认识

来源:互联网 发布:天龙八部billing 源码 编辑:程序博客网 时间:2024/05/16 18:43

这三个方法用于删除字符串头尾出现的某些字符。Trim()删除字符串头部及尾部出现的空格,删除的过程为从外到内,直到碰到一个非空格的字符为止,所以不管前后有多少个连续的空格都会被删除掉。TrimStart()只删除字符串的头部的空格。TrimEnd()只删除字符串尾部的空格。

      如果这三个函数带上字符型数组的参数,则是删除字符型数组中出现的任意字符。如Trim("abcd".ToCharArray())就是删除字符串头部及尾部出现的a或b或c或d字符,删除的过程直到碰到一个既不是a也不是b也不是c也不是d的字符才结束。
      这里最容易引起的误会就是以为删除的是"abcd"字符串。如下例:
          string s = " from dual union all ";
          s = s.Trim().TrimEnd("union all".ToCharArray());
      可能有人以为上面s的最终结果是"from dual",但真正的结果是"from d"。需要注意的是这种写法执行的删除对象是字符数组中出现的任意字符,而不是这些字符连在一起组成的字符串!

 

Trim() : 是截取首位相匹配的字符后得到的字符串,如果不带参数则截取首位的空字符得到字符串

如: this.TextBox2.Text = this.TextBox1.Text.Trim(new char[] { '*',' ','#','@','!','&','%','$'});

具体下:如果TextBox1 输入%###16421*&^%% 则TextBox2的到:16421*&^ 这说名只要首位开始出现char型数组中的字符就一直截取直到遇到不是该char型数组中的字符,如果去掉TextBox1 中的^ 则得到16421

同理:TrimEnd(),TrimStart() 很容易理解了

实例:

this.TextBox2.Text = this.TextBox1.Text.TrimStart(new char[] { '*' ,' ' ,'#' ,'@' ,'!' ,'&' ,'%' ,'$' }); TextBox1输入%#^##16421*&^%% 得到:^##16421*&^%%

this.TextBox2.Text = this.TextBox1.Text.TrimEnd(new char[] { '*' ,' ' ,'#' ,'@' ,'!' ,'&' ,'%' ,'$' });TextBox1输如%#^##16421*&^%% 得到:%#^##16421*&^

 

原创粉丝点击