Csharp/C#教程:如何将带有换行符的字符串转换为单独的行?分享


如何将带有换行符的字符串转换为单独的行?

如何将rn字符串转换为行?

例如,取这个字符串:

 string source = "hello rn this is a test rn tested"; 

以及如何将其转换为:

 string[] lines ; //lines[0] = hello; //lines[1] = this is a test; //lines[2] = tested ; 

使用String.Split方法(String [],StringSplitOptions),如下所示:

 var lines = source.Split(new [] { "rn", "n" }, StringSplitOptions.None); 

无论源是使用Windows linebreak rn还是Unix n编写,这个都可以使用。

正如其他答案所提到的,您可以使用StringSplitOptions.RemoveEmptyEntries而不是StringSplitOptions.None ,正如名称所示,它删除空字符串( " "不符合空,只有""确实如此)。

除了提到的string.Split之外,您还可以使用Regex.Split ,但它通常对更复杂的分割模式更有用。

 var lines = Regex.Split( source, @"rn" ); 

 string text = "Hello rn this is a test rn tested"; string[] lines = text.Split(new string[] { "rn" }, StringSplitOptions.RemoveEmptyEntries); foreach (string line in lines) { System.Diagnostics.Debug.WriteLine(line); } 

您可以使用System.String.Split的重载来使用单个字符,字符数组或字符串值数组作为拆分字符串的分隔符。 StringSplitOptions指定是否保留空行或删除它们。 (例如,如果要分割多行文本(如段落),则会保留它们,但会在名称列表的示例中将其删除)

尝试

 string[] items = source.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); 

为清楚起见,我做了另一个答案。

我做了这两个扩展方法:

ReadLines将允许您在不将整个字符串解析为数组的情况下读取一行。 ReadAllLines将整行解析为数组。

在您的情况下,您可以使用它:

 var lines = source.ReadAllLines(); 

我从File.ReadLinesFile.ReadAllLines获取了名称,因此它们应与.Net框架的其余部分保持一致。

作为对我的另一个答案的评论的旁注,我检查了StringReader.ReadLine的代码,这确实处理了rnn – 但不是旧的旧Mac OS等(不应该重要) )。

 public static class StringExtensions { public static IEnumerable ReadLines(this string data) { using (var sr = new StringReader(data)) { string line; while ((line = sr.ReadLine()) != null) yield return line; } } public static string[] ReadAllLines(this string data) { var res = new List(); using (var sr = new StringReader(data)) { string line; while ((line = sr.ReadLine()) != null) res.Add(line); } return res.ToArray(); } } 

ReadAllLines可以使用ReadLines.ToArray制作,但我认为额外的几行代码比包装的IEnumerable更好,这需要一些处理时间)

上述就是C#学习教程:如何将带有换行符的字符串转换为单独的行?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ctvol.com/cdevelopment/989897.html

(0)
趣味编程趣味编程
上一篇 2021年12月24日
下一篇 2021年12月24日

精彩推荐