所以我知道一个段落是char 10 + char 13 我这样做:
streamreader sr = new streamreader();
string s = sr.ReadToEnd();
string s1 = s.Replace((char)10, "*");
string s2 = s1.Replace((char)13, "*");
现在它将段落改为两个**但是如何拆分2个字符?任何人都可以选择拆分段落吗?
答案 0 :(得分:4)
string doc = "line1\r\nline2\r\nline3";
var docLines = doc.Split(new string[] { "\r\n" }, System.StringSplitOptions.None);
Alliteratively你可以使用Environment.NewLine ......这将保持标准。
var docLines = doc.Split(new string[] { Environment.NewLine }, System.StringSplitOptions.None);
答案 1 :(得分:3)
假设您的意思是ASCII cr + lf(13 + 10),只需使用StreamReader.ReadLine()。
答案 2 :(得分:2)
你试过Regex
吗? Windows使用\r
(13)后面的\n
(10)作为行分隔符,因此您将获得行。但是如果你想要至少由一个空行分隔的文本块,你可以试试这个:
string inputString = sr.ReadToEnd();
string[] paragraphs = Regex.Split(inputString , "(\r\n){2,}");
答案 3 :(得分:1)
请参阅string.Split(string[], StringSplitOption):
var result = s2.Split(new []{"**"}, StringSplitOption.RemoveEmptyEntries)
您也可以使用Environment.NewLine进行操作,而无需将其转换为**:
var result = s.Split(new []{Enviornment.NewLine}, StringSplitOption.RemoveEmptyEntries)
答案 4 :(得分:0)
如果您的拆分条件很简单,请使用正则表达式。