我有一个字节数组(比如byte []数据),其中包含带有自定义行分隔符的文本,例如:“\ r \ n”(CRLF“\ x0D \ x0A”),“\ r”,“ \ n“,”\ x0D \ x0A \ x0D“或甚至”@“。
目前我将使用以下解决方案:
使用StringReader逐行读取文本
using (String Reader sr = new StringReader(data.ToString()))
{
string line;
while ((line = sr.ReadLine()) != null)
{
// Process the line
}
}
我正在使用C#,.NET 3.5。 有没有更好的解决方案?
感谢。
答案 0 :(得分:1)
这是一个将string.Replace
的调用限制为多字符分隔符的选项。
private static readonly char[] DelimiterChars = { '\r', '\n', '@' };
private static readonly string[] DelimiterStrings = { "\r\n\r", "\r\n" };
然后......
string text = Encoding.ASCII.GetString(data);
foreach (string delim in DelimiterStrings)
text = text.Replace(delim, "\n");
foreach (string line in text.Split(DelimiterChars))
{
// processing here
}
答案 1 :(得分:0)
使用regexp代替,这将为您提供更大的灵活性。