在 C # 中替换(char,char)方法

如何用空白替换 \n

如果这样做,会得到一个空白的字面错误:

string temp = mystring.Replace('\n', '');
134166 次浏览

这个应该可以。

string temp = mystring.Replace("\n", "");

您确定在您的原始字符串中有实际的 n 个新行吗?

string temp = mystring.Replace("\n", " ");

String.Replace('\n', '')不起作用,因为 ''不是有效的字符文字。

如果使用 String.Replace (String,String)覆盖,应该可以正常工作。

string temp = mystring.Replace("\n", "");

一个警告: 在。NET 的换行符是“ r n”。因此,如果你从一个文件中加载文本,你可能不得不使用它,而不仅仅是“ n”

正如 Samuel 在评论中指出的那样,“ r n”不是特定于.NET 的,而是特定于 Windows 的。

如果你用

string temp = mystring.Replace("\r\n", "").Replace("\n", "");

那你就不用担心绳子是从哪里来的了。

创建这样的扩展方法怎么样... ..。

 public static string ReplaceTHAT(this string s)
{
return s.Replace("\n\r", "");
}

然后当你想取代它的时候,你可以在任何地方这样做。

s.ReplaceTHAT();

最好的问候!

@ gnomixa-你在评论中说没有任何成就是什么意思? 以下内容在 VS2005中对我很有用。

如果您的目标是删除换行符,从而缩短字符串,请看下面的代码:

        string originalStringWithNewline = "12\n345"; // length is 6
System.Diagnostics.Debug.Assert(originalStringWithNewline.Length == 6);
string newStringWithoutNewline = originalStringWithNewline.Replace("\n", ""); // new length is 5
System.Diagnostics.Debug.Assert(newStringWithoutNewline.Length == 5);

如果您的目标是将换行符替换为空格字符,并保持字符串长度不变,请看下面的示例:

        string originalStringWithNewline = "12\n345"; // length is 6
System.Diagnostics.Debug.Assert(originalStringWithNewline.Length == 6);
string newStringWithoutNewline = originalStringWithNewline.Replace("\n", " "); // new length is still 6
System.Diagnostics.Debug.Assert(newStringWithoutNewline.Length == 6);

您必须替换单字符字符串而不是字符,因为“不是要传递给 Replace (string,char)的有效字符

由于用“”替换“ n”不会得到您想要的结果,这意味着您应该替换的实际上不是“ n”,而是其他一些字符组合。

一种可能性是,您应该替换的是“ r n”字符组合,这是 Windows 系统中的换行代码。如果只替换“ n”(换行符)字符,它将保留“ r”(回车符)字符,这仍然可以解释为换行符,具体取决于如何显示字符串。

如果字符串的源是系统特定的,则应使用该特定字符串,否则应使用 Environment。NewLine 获取当前系统的换行字符组合。

string temp = mystring.Replace("\r\n", string.Empty);

或:

string temp = mystring.Replace(Environment.NewLine, string.Empty);

这就是你的确切答案。

const char LineFeed = '\n'; // #10
string temp = new System.Text.RegularExpressions.Regex(
LineFeed
).Replace(mystring, string.Empty);

但是这一个更好... 特别是如果你试图分裂线 (你也可以和 Split 一起使用)

const char CarriageReturn = '\r'; // #13
const char LineFeed = '\n'; // #10
string temp = new System.Text.RegularExpressions.Regex(
string.Format("{0}?{1}", CarriageReturn, LineFeed)
).Replace(mystring, string.Empty);

字节网频道:

string temp = mystring.Replace('\n', '\0');// '\0'表示一个空字符

我知道这是一个老职位,但我想添加我的方法。

public static string Replace(string text, string[] toReplace, string replaceWith)
{
foreach (string str in toReplace)
text = text.Replace(str, replaceWith);


return text;
}

示例用法:

string newText = Replace("This is an \r\n \n an example.", new string[] { "\r\n", "\n" }, "");
string temp = mystring.Replace("\n", string.Empty).Replace("\r", string.Empty);

很明显,这同时删除了 n’和 r’,并且和我知道的一样简单。