在一些C#代码中,我看到default(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和#34;。但我希望输出为数字数组字符串,即{" 1"," 2"," 3"}
我怎样才能做到这一点?
答案 0 :(得分:3)
使用default(string[])
作为参数并不是特别有用也不可读,因为它可以(并且将由编译器)简化为null
,这样更易读。
然后你会去read the docs:
如果separator参数为null或不包含字符,则假定空格字符为分隔符。空格字符由Unicode标准定义,如果将它们传递给Char.IsWhiteSpace方法,则返回true。
如果您想拆分多个分隔符,请尝试搜索:splitting a string based on multiple char delimiters
答案 1 :(得分:0)
使用另一个Split with char数组覆盖
Split(new []{',',' '}, StringSplitOptions.RemoveEmptyEntries);