我有一个如下文本文件:
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”。
[绝对路径解决]
感谢您的评论和回答:
不是每个空间都有一个管道 - >每行中的所有空格都有一个管道......
提前致谢
答案 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个相邻空格,然后用管道替换最后的空格。