如何将\n
替换为空格?
如果我这样做,会得到一个空字面错误:
string temp = mystring.Replace('\n', '');
String.Replace('\n', '')
无法工作,因为''
不是有效的字符字面量。
如果你使用String.Replace(string, string)方法,则应该可以正常工作。
string temp = mystring.Replace("\n", "");
replace("\n", ""); replace("\r", "");
- sarsnakeString.Empty
和 ""
并不真的重要(或值得辩论),然而 someValue == MyStaticValues.SomeMeaning
和 someValue == "SomeMeaning"
是重要的,并且值得辩论。 魔术字符串更难维护和阅读,因此使用常量和静态值来优雅地和表达性地表示您的含义。 例如 Colors.White vs #FFFFFF。 - kingdangostring temp = mystring.Replace("\\n", "");
- Barbaros Alp由于用“\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);
string temp = mystring.Replace("\n", string.Empty).Replace("\r", string.Empty);
这应该可以工作。
string temp = mystring.Replace("\n", "");
您确定原始字符串中有实际的换行符吗?
string temp = mystring.Replace("\r\n", "").Replace("\n", "");
那么你就不必担心你的字符串来自哪里了。
public static string ReplaceTHAT(this string s)
{
return s.Replace("\n\r", "");
}
然后,当您想要在任何地方替换它时,可以这样做。
s.ReplaceTHAT();
最好的祝福!
这就是您确切的答案...
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", string.Empty).Replace("\r", string.Empty);
更快更简单。 - Shawn Kovac@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)的有效字符。
我知道这是一个旧帖子,但我想添加我的方法。
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" }, "");