我拆分一个字符串基于空白如下:

string myStr = "The quick brown fox jumps over the lazy dog";

char[] whitespace = new char[] { ' ', '\t' };
string[] ssizes = myStr.Split(whitespace);

在我想要这样做的代码中处处定义char[]数组是令人厌烦的。有没有更有效的方法,不需要创建字符数组(如果复制到不同的地方,很容易出错)?


当前回答

如果你打电话:

string[] ssize = myStr.Split(null); //Or myStr.Split()

or:

string[] ssize = myStr.Split(new char[0]);

然后假定空格是分隔字符。从string.Split(char[])方法的文档页。

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

一定,一定,一定要阅读文档!

其他回答

你为什么不这样做

var ssizes = myStr.Split(" \t".ToCharArray());

在。net 4.0中似乎有一个String.ToCharArray()方法!

编辑:正如VMAtm指出的,这个方法在。net 2.0中已经存在了!

你可以这样做:

string myStr = "The quick brown fox jumps over the lazy dog";
string[] ssizes = myStr.Split(' ');

MSDN有更多的例子和参考:

http://msdn.microsoft.com/en-us/library/b873y76a.aspx

如果你打电话:

string[] ssize = myStr.Split(null); //Or myStr.Split()

or:

string[] ssize = myStr.Split(new char[0]);

然后假定空格是分隔字符。从string.Split(char[])方法的文档页。

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

一定,一定,一定要阅读文档!

你不能内联吗?

var sizes = subject.Split(new char[] { ' ', '\t' });

否则,如果你经常这样做,你总是可以创建一个常量或者包含那个char数组的东西。

正如其他人所注意到的,您也可以根据文档使用null或空数组。当你这样做时,它将自动使用空白字符。

var sizes = subject.Split(null);

你可以使用

var FirstString = YourString.Split().First();

拆分字符串,并获得其在空格之前的第一次出现。