我有一个字符串,我想通过符号'\ n'或'\ r'拆分成子字符串,对于单个标识符拆分,我们可以使用
string[] strsplit = str.Split('\n') ;
但在我的情况下,不确定天气是'\ n'还是'\ r' ..
任何人都可以告诉我有没有办法像下面提到的那样拆分字符串..
string[] strsplit = str.Split('\n' || '\r') ;
先谢谢,对不起我的坏英语
答案 0 :(得分:5)
Split
方法有重载,它接受char
:
string[] strsplit = str.Split(new char[] { '\n', '\r' }) ;
如评论中所述,您现在可以这样做:
string[] strsplit = str.Split('\n', '\r') ;
答案 1 :(得分: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);
请注意,这些现在是字符串(使用"
代替'
)。
您可以通过将StringSplitOptions
更改为StringSplitOptions.None
答案 2 :(得分:0)
您说您只想按\r
或\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的答案略有不同。只取决于你在寻找什么。
答案 3 :(得分:0)
您只需将一组字符传递给Split方法
string[] arr = "Test\rTest\nTest".Split(new[] { '\r', '\n' });