如何用空白替换 \n?
\n
如果这样做,会得到一个空白的字面错误:
string temp = mystring.Replace('\n', '');
这个应该可以。
string temp = mystring.Replace("\n", "");
您确定在您的原始字符串中有实际的 n 个新行吗?
string temp = mystring.Replace("\n", " ");
String.Replace('\n', '')不起作用,因为 ''不是有效的字符文字。
String.Replace('\n', '')
''
如果使用 String.Replace (String,String)覆盖,应该可以正常工作。
一个警告: 在。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'表示一个空字符
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’,并且和我知道的一样简单。