你怎么删除空间

时间:2011-01-25 19:47:06

标签: c#

得到不可变的部分,总是想念,谢谢所有

大家好,

String test = "John, Jane";

test.Replace(" ","");

String[] toList = test.Split(',', ' ', ';');

如何仅删除字符串中的空格或可能显示的任何空格?

为什么数组中有3个项而不是2个?

5 个答案:

答案 0 :(得分:13)

要删除任何空格,只需将其替换为任何空字符串:

test = test.Replace(" ", "");

请注意只是调用string.Replace不会这样做 - 字符串是不可变的,因此string.Replace返回值是对带有相关替换的新字符串。

答案 1 :(得分:5)

这很简单:

test=test.Replace(" ","");

如果您想删除任何空格,则需要regex

using System.Text.RegularExpressions;
Regex r=new Regex("\\s+");
test=r.Replace(test,"");

Re:为什么数组中有3个项而不是2个?

因为你用分割逗号和空格(split arg 1 + 2),因为JohnJane之间有一个逗号和一个空格你是得到:

["John", "", "Jane"] // (in JSON notation ;))

答案 2 :(得分:4)

        string test2 = test.Replace(" ", "");

答案 3 :(得分:1)

如果要删除所有类型的空白,可以使用string noWhiteSpace = Regex.Replace("John, Jane", @"\s", string.Empty);如果您只想删除空格字符,请使用string noSpace = "John, Jane".Replace(" ",string.Empty);

刚看到您在编辑中添加的问题的第二部分:

您的数组中有三个项目,因为您的测试字符串将拆分包含在要分割的字符列表中的每个标记。你的字符串包含空格和逗号,你可以在逗号处分割,在空格处分割。

如果您不想要空条目,可以使用以下内容:

String[] toList = test.Split(new char[] {',', ' ', ';'}, StringSplitOptions.RemoveEmptyEntries);

当然,如果您删除了空格,那么您将无法分割任何空格。

答案 4 :(得分:0)

所以完整的解决方案就是:

String test = "John, Jane";

test = test.Replace(" ","");

String[] toList = test.Split(',', ';');
  

为什么数组中有3个项而不是2个?

有两个原因:1)当您致电Replace时,您正在生成字符串,并且您需要将其存储在某个变量中 - 原始字符串是不可变< / em>的。 2)然后在调用' '时使用空格(Split)作为分隔符之一;你不需要那个(你要删除前一行中的所有空格)。