0

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

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

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

如果我在我的代码中使用 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

4 回答 4

0

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

string noCR = line.Replace("\n", "")
于 2013-11-05T11:54:23.557 回答
0

您需要使用 String.Replace。

所以:

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

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

我认为它应该工作

于 2013-11-05T11:54:36.497 回答
0

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

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

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

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

string textWithoutLineEndings = string.Join(" ", lines);
于 2013-11-05T11:57:21.950 回答
0

我通常像这样规范化行尾:

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

这种变化是可能的。

于 2013-11-05T11:59:21.947 回答