我遇到了一个奇怪的情况。当我逐字逐句地做一个字符串时,如下所示:
string str = @"Hello
World"
字符串是用"\r\n"创建的,因此它是"Hello\r\nWorld"。我希望它只创建新行,没有回车,这样它就只有"\n"。
现在,我意识到我可以做到:
str = str.Replace("r", "")
但是字符串是一个常量变量,特别是因为我不想为了性能(无论多小(等而进行大量的实例化和操作
有人知道我是如何做到这一点的吗?这样,我就可以写一个多行的文本,存储为一个不带"\r"的常量字符串,它仍然是格式化的,在代码中很容易阅读?
这是你的编辑器对你做的,而不是C#。
如果您在十六进制编辑器中查看代码,您会看到行"string str=@"Hello"以\r\n结尾,而不仅仅是\n。
在Windows上,默认情况下,返回是两个字符\r\n,而不是像Mac上那样只有一个字符。
大多数编辑都可以选择更改此项。但是,当您不注意的时候,最终会有一些东西将文件切换回\r\n在您身上使用。
语言并没有提供一个干净的方法来解决这个问题。只需使用非逐字逐句的字符串或进行替换即可。