我有一个文本文件,我必须用每个空格('')和换行符('\n')分割值。它不能很好地工作,因为每个换行符都有一个回车连接到它(\r\n)。
char[] param = new char[] {' ','\n','\r'}; // The issue
string[] input = fill.Split(param);
param 数组不接受 '\r\n' 参数作为 n 拆分参数,这就是我分别使用 '\n' 和 '\r' 的原因,但它不能按照需要的方式工作。有什么建议么?
使用采用字符串数组的 String.Split()的重载,而不是采用字符数组的重载。
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);
string[] result = text.Split(new string[] { " ", Environment.NewLine },
StringSplitOptions.None);
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 平台。