如何在C#中从字符串中删除\r\n?

7

我正在尝试找出一种简单的方法从字符串中删除\r\n。

例子: text = "this.is.a.string.\r\nthis.is.a.string\r\n"

我尝试过:

text.Replace("\r\n", "")text.Replace("\r\n", string.Empty),但都无法起作用。\r\n仍然在字符串中...

结果应该是:"this.is.a.string.this.is.a.string"


使用 string.replace() - Rahul
1
你有将 text.Replace() 的结果赋值给某个地方吗?它不会就地替换。 - zerkms
2
你必须意识到字符串是不可变的,每个你使用的“字符串方法”都会返回一个新的字符串,因此你必须将其分配给一个字符串变量,该变量可以是你的文本变量或一个新的变量。 - terrybozzio
这里提供了更好的解决方案,请检查: https://dev59.com/xHI-5IYBdhLWcg3wMFIf#1982317 - Suraj Bhatt
7个回答

33

这样读起来更好:

text = text.Replace(System.Environment.NewLine, string.Empty);

5

.NET中的字符串是不可变的,因此您无法更改现有字符串 - 您只能创建新字符串。 Replace方法返回修改后的结果,即。

text = text.Replace(System.Environment.NewLine, string.Empty);
text = JObject.Parse(text);

1
感谢您提供这段代码片段,它可能会提供一些有限的、即时的帮助。通过展示为什么这是一个好的解决方案,一个适当的解释将极大地提高其长期价值,并使其对未来读者具有其他类似问题更有用。请[编辑]您的答案以添加一些解释,包括您所做出的假设。 - Suraj Rao
我曾在一个Web API中使用过这段代码,但\r\n无法正常工作。输入:{\r\n "LOINC": [\r\n {\r\n "LOINC_NUM": "10362-2",\r\n "COMPONENT": "Endomysium Ab.IgA",\r\n "PROPERTY": "PrThr",\r\n "TIME_ASPCT": "Pt",\r\n }\r\n ]\r\n};输出:{ "LOINC": [ { "LOINC_NUM": "10362-2", "COMPONENT": "Endomysium Ab.IgA", "PROPERTY": "PrThr", "TIME_ASPCT": "Pt" } ] } - Ramya Prakash Rout
到目前为止,最好的答案 - Alex

2
你是否将返回值设置回变量中?
text = text.Replace(@"\r\n", "");

2
它会返回一个值。你需要使用text = ...语句。
text = text.Replace(@"\r\n", "");

1

试试这个:

text = text.Replace(System.Environment.NewLine, "");

0

请试一试。

text = text .Replace("\\r\\n", "");

这对我有用;)


-1

你最好试一下这个。

text = text.Replace("\r\n", ""); 

希望这个能够工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接