1

我有一个文本文件,我必须用每个空格('')和换行符('\n')分割值。它不能很好地工作,因为每个换行符都有一个回车连接到它(\r\n)。

char[] param = new char[] {' ','\n','\r'}; // The issue
string[] input = fill.Split(param);

param 数组不接受 '\r\n' 参数作为 n 拆分参数,这就是我分别使用 '\n' 和 '\r' 的原因,但它不能按照需要的方式工作。有什么建议么?

4

4 回答 4

0

使用采用字符串数组的 String.Split()的重载,而不是采用字符数组的重载。

于 2013-03-17T10:42:42.257 回答
0

一个接受字符串的重载

string[] input = fill.Split(
    new string[] { " ", Environment.NewLine },
    StringSplitOptions.None);

您也可以使用Environment.NewLine代替"\r\n".

但是如果你想支持所有类型的换行符,你最好指定所有流行的可能性:

string[] input = fill.Split(
    new string[] { " ", "\n", "\r\n" },
    StringSplitOptions.None);
于 2013-03-17T10:43:32.050 回答
0
string[] result = text.Split(new string[] { " ", Environment.NewLine },
                            StringSplitOptions.None);
于 2013-03-17T10:46:06.310 回答
0
string fill = @"one two three four";
string[] result = fill.Split(new string[] { " ", Environment.NewLine },
                            StringSplitOptions.None);

foreach (var s in result)
{
    Console.WriteLine(s);
}

这是一个DEMO.

但请记住,Environment.NewLine

包含“\r\n”的字符串用于非 Unix 平台,或包含“\n”的字符串用于 Unix 平台。

于 2013-03-17T10:49:55.543 回答