C#如何用新行替换空格

时间:2014-12-03 18:30:04

标签: c# streamreader spaces

如何用新线替换空格。我的文本文件如下:

  

1 2 3 4 5 6

但我希望myString看起来像:

1  
2  
3  
4  

代码:

StreamReader myReader = new StreamReader("TextFile1.txt");
string myString = myReader.ReadLine();
myString = myString.Replace(' ', '\n');

在当前状态下,它只在空格上添加\n

3 个答案:

答案 0 :(得分:2)

使用:

myString = String.Join(Environment.NewLine, 
                myString.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries));

这将根据空格拆分字符串,然后使用Environment.NewLine加入它们。因此,在多个空格的情况下,只会出现一个新行。

答案 1 :(得分:0)

您可以使用Environment.NewLine:

myString = myString.Replace(' ', Environment.NewLine);

这是一个独立于平台的线路替换。不要使用' \ n'。

Environment.NewLine基本上输出" \ r \ n"对于非Unix平台,以及" \ n"对于Unix平台。您不在Unix平台上,因此输出不正确。

如果将来使用\ n和/或\ r \ n \,您将遇到许多奇怪的问题。最好只使用Environment.NewLine。这适用于MessageBox.Show()对话框,StreamWriter,StreamReader等。

您可以将代码移植到任何位置,而如果您要使用\ n或\ r \ n,则您将被限制在支持它的平台上。

答案 2 :(得分:-2)

使用正则表达式用新行替换每个空格。

using System;
using System.Text.RegularExpressions;

public class Program {
    public static void Main() {
        var input = "1 2 3 4 5 6";
        Console.WriteLine("input:");
        Console.WriteLine(input);
        var output = Regex.Replace(input, " ", "\n");
        Console.WriteLine("output:");
        Console.WriteLine(output);
    }
}

https://dotnetfiddle.net/F6vmj4