使用C#删除文件中的悬空CR

时间:2013-10-31 17:42:09

标签: c# .net

我有一个场景,我的文件中有一个悬挂的 CR (回车)。但每行都由 CRLF 分隔。

例如,我在文件中有以下行说input.txt:

  

Stackoverflow是一个可以为任何新手用户使用 CR 的可爱网站   的 CRLF

如果我在代码中使用ReadAllLines方法。我得到2个不同的字符串。

string[] lines = File.ReadAllLines(input.txt)

lines[0] = "Stackoverflow is a lovely site to use "

lines[1] = "for any novice user "

现在我必须只消除上面一行中的 CR 并保留 CRLF

这样我才能得到;

lines[0] = "Stackoverflow is a lovely site to use for any novice user "

我怎样才能在C#中做到这一点?

4 个答案:

答案 0 :(得分:0)

How to detect Carriage return in a string类似,试试这个:

string noCR = line.Replace("\n", "")

答案 1 :(得分:0)

您需要使用String.Replace。

所以:

string test = lines[0].Replace("CR", "");

或使用字符“\ n”执行此操作。

我认为应该有效

答案 2 :(得分:0)

尝试阅读整个文件并自行拆分

string text = File.ReadAllText("my file");
string[] lines = test.Split('\r', '\n', StringSplitOptions.RemoveEmptyEntries);

这将为您提供一个字符串数组,每个元素都有一行。任何行都不会包含或以CRLFCRLF结尾。

现在你想把它们重新组合在一起。试试这个。

string textWithoutLineEndings = string.Join(" ", lines);

答案 3 :(得分:0)

我通常将这样的行结尾标准化:

str.Replace("\r", "").Replace("\n", "\r\n")

这种情况的变化是可能的。