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"}

我怎样才能做到这一点?

string . split()使用default(string[])作为分隔符,它是如何工作的?

使用default(string[])作为参数并不是特别有用,也不是特别可读,因为它可以(并且编译器将会)简化为仅null,这是更可读的方式。

然后你去看文档:

如果分隔符参数为空或不包含字符,则假定空白字符为分隔符。空白字符由Unicode标准定义,如果传递给Char则返回true。IsWhiteSpace方法。

如果您想要分割多个分隔符,那么尝试搜索:基于多个字符分隔符分割字符串

使用另一个char数组重写Split

Split(new []{',',' '}, StringSplitOptions.RemoveEmptyEntries);