当String.Split()方法遇到回车换行

目标:给定一篇中文文章(由若干段组成),切割出文章中的每一句话(由“。”,“!”,“?”做切割符)。由于问题针对每一段的第一句话都要做特殊处理。因此,很容易想到先对文章进行段切割,然后再针对每一个段落用(。,!,?)作为切割符切割出每句话。


问题:在切割段时使用的切割符是 '\n',然后在每段中切割句子后发现句子数总是多出一个。即假设某个段只有3句话,切割后得到的字符串数组却显示有4句话。而且调试发现最后一句话的长度都为1。


解决方法:中Windows环境下,回车换行符为 \r\n。因此做段切割时必须使用 {'\r','\n'} 作为切割符。若只使用 \n 做切割符,会在每段的末尾留下一个 \r 。这就是多出的长度总是为1的那句话。

你可能感兴趣的:(C#)