得到不可变的部分,总是想念,谢谢所有
大家好,
String test = "John, Jane";
test.Replace(" ","");
String[] toList = test.Split(',', ' ', ';');
如何仅删除字符串中的空格或可能显示的任何空格?
为什么数组中有3个项而不是2个?
答案 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),因为John
和Jane
之间有一个逗号和一个空格你是得到:
["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
)作为分隔符之一;你不需要那个(你要删除前一行中的所有空格)。