我有一个场景,我的文件中有一个悬挂的 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#中做到这一点?
答案 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);
这将为您提供一个字符串数组,每个元素都有一行。任何行都不会包含或以CRLF
或CR
或LF
结尾。
现在你想把它们重新组合在一起。试试这个。
string textWithoutLineEndings = string.Join(" ", lines);
答案 3 :(得分:0)
我通常将这样的行结尾标准化:
str.Replace("\r", "").Replace("\n", "\r\n")
这种情况的变化是可能的。