我有一个字符串,我想通过符号 '\n' 或 '\r'将其拆分为子字符串 ,对于单个标识符拆分,我们可以使用
string[] strsplit = str.Split('\n') ;
但就我而言,不确定天气是'\n' 还是 '\r' ..
谁能告诉我有没有办法像下面提到的那样分割字符串..
string[] strsplit = str.Split('\n' || '\r') ;
提前感谢,对不起我的英语不好
Split
方法具有接受数组的重载char
:
string[] strsplit = str.Split(new char[] { '\n', '\r' }) ;
如评论中所述,您现在可以这样做:
string[] strsplit = str.Split('\n', '\r') ;
如果您遇到有时有时会出现分割线的情况,有时有时,\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 更改StringSplitOptions
为StringSplitOptions.None
你说你只想用\r
or分割\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 的回答略有不同。只是取决于你在找什么。
您只需将一个字符数组传递给 Split 方法
string[] arr = "Test\rTest\nTest".Split(new[] { '\r', '\n' });