1

我有一个字符串,我想通过符号 '\n' 或 '\r'将其拆分为子字符串 ,对于单个标识符拆分,我们可以使用

string[] strsplit = str.Split('\n') ;

但就我而言,不确定天气是'\n' 还是 '\r' ..

谁能告诉我有没有办法像下面提到的那样分割字符串..

string[] strsplit = str.Split('\n' || '\r') ;

提前感谢,对不起我的英语不好

4

4 回答 4

5

Split方法具有接受数组的重载char

string[] strsplit = str.Split(new char[] { '\n', '\r' }) ;

如评论中所述,您现在可以这样做:

string[] strsplit = str.Split('\n', '\r') ;
于 2013-07-31T16:25:35.923 回答
4

如果您遇到有时有时会出现分割线的情况,有时有时,\n您可以执行以下操作\r\r\n

someString.Split(new[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries);

另一种选择是,如果您想明确包含Environment.NewLine( \r\n) 是

someString.Split(new[] { "\n", "\r", Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);

请注意,这些现在是字符串(使用"而不是')。

您可以通过将 to 更改StringSplitOptionsStringSplitOptions.None

于 2013-07-31T16:28:28.150 回答
0

你说你只想用\ror分割\n,但实际上人们通常也想考虑\r\n,因为这是默认的 Windows 换行符。如果你也想要,你需要做一些额外的工作。一种方法是使用StringReader并让它为您工作:

var lines = new List<string>();
using (var sr = new StringReader(str)) {
    string line;
    while ((line = sr.ReadLine()) != null) {
        lines.Add(line);
    }
}
string[] strsplit = lines.ToArray();

在处理多个空行时,这与 dav_i 的回答略有不同。只是取决于你在找什么。

于 2013-07-31T16:30:08.193 回答
0

您只需将一个字符数组传递给 Split 方法

string[] arr = "Test\rTest\nTest".Split(new[] { '\r', '\n' });
于 2013-07-31T16:30:12.717 回答