【发布时间】:2014-02-04 19:30:34
【问题描述】:
我在 .NET 中有一个这样定义的字符串:
var str = @"line 1
line 2
line 3";
我想替换 Linux 等效项的 Windows 换行符。 (将 \r\n 替换为 \n)。
我试过var str2 = str.replace(Environment.NewLine, "\n");,但结果是完全相同的字符串(str == str2 为真)。
我猜 Windows 将字符串中的 \n 替换为 \r\n,实际上什么也没改变。
我尝试了var str2 = str.replace(Environment.NewLine, '\n');,但出现编译错误,因为一个参数是字符串,另一个是字符。
我什至尝试过var str2 = str.replace(Environment.NewLine, '\n'.ToString());,但也没有用。
想法?
【问题讨论】:
-
你试过
str.Replace("\r", "");吗? -
A) 你确定它一开始就坏了,B) 你把它写到文件里了吗?
"\n"绝对不会自动转换为"\r\n"。 -
我从 DotNetFiddle 中的 @Vache 那里得到了要点,但是当我自己在笔记本电脑上尝试时,我确实有 \r\n。
-
IdeOne 还有一个结果:ideone.com/uWKkTl
-
IdeOne 和 .NETFiddle 的区别可能是因为前者是 Unix 2.6.32.46 而后者是 Microsoft Windows NT 6.2.9200.0
标签: c# .net newline line-breaks