C# String.Split()使用默认值(String[])作为分隔符,它是如何工作的?
在一些C#代码中,我看到C# String.Split()使用默认值(String[])作为分隔符,它是如何工作的?,c#,C#,在一些C#代码中,我看到默认值(string[])为null,但其行为似乎是基于空格进行拆分: string[] x = "1 2 3".Split(default(string[]), StringSplitOptions.RemoveEmptyEntries); string[] y = "1,2, 3".Split(default(string[]), StringSplitOptions.RemoveEmptyEntries); 这里,x变成string[3]={“1”,“2”,
默认值(string[])
为null
,但其行为似乎是基于空格进行拆分:
string[] x = "1 2 3".Split(default(string[]), StringSplitOptions.RemoveEmptyEntries);
string[] y = "1,2, 3".Split(default(string[]), StringSplitOptions.RemoveEmptyEntries);
这里,x
变成string[3]={“1”,“2”,“3”}
,y
变成string[2]={“1,2”,“3”}
我的输入字符串可以用空格或逗号分隔,即“1,2,3”或“1,2,3”。但我希望输出是数值数组字符串,即{“1”、“2”、“3”}
如何实现这一点?使用
default(string[])
作为参数既不是特别有用,也不是特别可读,因为它可以(而且编译器会)简化为仅null
,这样可读性更好
然后你会去:
如果separator参数为null或不包含任何字符,则假定空白字符为分隔符。空格字符由Unicode标准定义,如果传递给Char.IsWhiteSpace方法,则返回true
如果要在多个分隔符上进行拆分,请尝试搜索该分隔符:请改用另一个用字符数组替代拆分
Split(new []{',',' '}, StringSplitOptions.RemoveEmptyEntries);
使用正则表达式来拆分字符串。可能与@sahil重复:没有人说过现有代码必须有意义或有用。现有代码可能是垃圾。有道理。我不知道这个转换,所以我想确认一下。