如何从字符串的开头或结尾删除所有的空格?

258

我如何从字符串的开头和结尾删除所有的空格?

像这样:

"hello" 返回 "hello"
"hello " 返回 "hello"
" hello " 返回 "hello"
" hello world " 返回 "hello world"

请使用以下代码实现:
```javascript str.trim(); ```
这将返回一个新字符串,其中包含原始字符串中除去开头和结尾空格后的部分。
7个回答

543

String.Trim() 返回一个字符串,该字符串等于输入字符串,但开头和结尾的所有空白字符已被修剪掉:

"   A String   ".Trim() -> "A String"

String.TrimStart() 方法返回一个删除了字符串开头的空格的新字符串:

"   A String   ".TrimStart() -> "A String   "

String.TrimEnd() 返回一个从末尾删除空格的字符串:

"   A String   ".TrimEnd() -> "   A String"

所有的方法都不会修改原始字符串对象。

(至少在某些实现中,如果没有需要去除的空格,你将得到与开始时相同的字符串对象:

csharp> string a = "a"; csharp> string trimmed = a.Trim(); csharp> (object) a == (object) trimmed; 返回 true

我不知道语言是否保证了这一点。)


1
对于空白符的 MS 定义,请参考⁺¹。我遇到了一个奇怪的行为,即 .TrimEnd() 不起作用(对于非断行空格字符),但最终只是因为该字符未列在文档中。 - Hi-Angel
3
有很多方法可以修剪字符串,其中有相当多的方法已经被基准测试过了。 不过,我喜欢使用.Trim(),因为它写起来最快,读起来也最容易。 - user4023224
1
也许了解这个会很有用:如果您有多行文本,比如在TextArea中。当您按下回车键时,您会得到类似于:" A String \r\n ".Trim() 也会将其识别为一个空格。 - Nash Carp
@NashCarp:这是因为\r和\n也是空白字符 - huha

24

看一下Trim(),它将返回一个新的字符串,该字符串是调用它的字符串的开头和结尾删除了空格后的结果。


22
string a = "   Hello   ";
string trimmed = a.Trim();

trimmed 现在是 "Hello"


17

使用 String.Trim() 函数。

string foo = "   hello ";
string bar = foo.Trim();

Console.WriteLine(bar); // writes "hello"

13

使用String.Trim方法。


10

String.Trim()用于删除字符串开头和结尾的所有空格。 要删除字符串内部的空格,或规范化空格,请使用正则表达式。


4

Trim() 从当前字符串中删除所有前导和尾随的空白字符。 Trim(Char) 从当前字符串中删除所有指定字符的前导和尾随实例。 Trim(Char[]) 从当前字符串中删除在数组中指定的一组字符的前导和尾随出现。

请看我从Microsoft文档页面引用的以下示例。

char[] charsToTrim = { '*', ' ', '\''};
string banner = "*** Much Ado About Nothing ***";
string result = banner.Trim(charsToTrim);
Console.WriteLine("Trimmmed\n   {0}\nto\n   '{1}'", banner, result);

// The example displays the following output:
//       Trimmmed
//          *** Much Ado About Nothing ***
//       to
//          'Much Ado About Nothing'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接