string . split()使用default(string[])作为分隔符,它是如何工作的?
本文关键字:string 何工作 工作 default 使用 split 分隔符 | 更新日期: 2023-09-27 18:17:01
在一些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"。但我希望输出是数值数组字符串,即{"1","2","3"}
我怎样才能做到这一点?
使用default(string[])
作为参数并不是特别有用,也不是特别可读,因为它可以(并且编译器将会)简化为仅null
,这是更可读的方式。
然后你去看文档:
如果分隔符参数为空或不包含字符,则假定空白字符为分隔符。空白字符由Unicode标准定义,如果传递给Char则返回true。IsWhiteSpace方法。
如果您想要分割多个分隔符,那么尝试搜索:基于多个字符分隔符分割字符串
使用另一个char数组重写Split
Split(new []{',',' '}, StringSplitOptions.RemoveEmptyEntries);