如何用一个字符替换文本文件中的所有空格?

时间:2011-08-30 13:16:22

标签: c# asp.net string replace

我有一个如下文本文件:

string string
string                 string
string   string
string          string

我想用竖线(|)字符替换所有这些空格 c#中有没有任何方法可以做到这一点?

我使用以下代码进行文件读写:
How do I read and edit a .txt file in C#?

修改
在接受的答案中使用代码后,我得到了以下的错误 System.IO.File.WriteAllLines(...

  

无法找到文件'C:\ Program Files \ Common Files \ Microsoft   共享\ DevServer \ 10.0 \ infilename.txt”。

[绝对路径解决]

感谢您的评论和回答:
不是每个空间都有一个管道 - >每行中的所有空格都有一个管道......

提前致谢

5 个答案:

答案 0 :(得分:4)

更改aanund的答案:

System.IO.File.WriteAllLines(
    "outfilename.txt",
    System.IO.File.ReadAllLines("infilename.txt").Select(line =>
        string.Join("|",
            line.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries)
        )
    ).ToArray()
);

答案 1 :(得分:3)

这样的事情应该有效:

System.IO.File.WriteAllLines(
    "outfilename.txt",
    System.IO.File.ReadAllLines("infilename.txt").Select(line =>
        System.Text.RegularExpression.Regex.Replace(line, @"\s+", "|")
        )
    ).ToArray()
);  

注意我刚从链接中复制并更改它以搜索空格并用管道替换它。

答案 2 :(得分:2)

这可能就是你要找的东西

var regex = new Regex("[ ]+", RegexOptions.Compiled);
regex.Replace(inputString, replaceCharacter);

阅读完整个文件后,请使用此正则表达式并将其写回文件中。

答案 3 :(得分:2)

您可以尝试使用正则表达式:

string text = "test    test   test         test";
string cleanText = System.Text.RegularExpressions.Regex.Replace(text, @"\s+", "|");

答案 4 :(得分:0)

使用Just Replace:

      string original  = "test   test  test test";
      string formatted = original.Replace("  ", " ").Replace(" ", "|");

用1个空格替换所有出现的2个相邻空格,然后用管道替换最后的空格。