String.Replace(char,char)在C#中的方法
如何用空格replace\n
?
我得到一个空的文字错误,如果我这样做:
string temp = mystring.Replace('\n', '');
String.Replace('\n', '')
不起作用,因为''
不是有效的字符文字。
如果您使用String.Replace(string,string)覆盖,它应该工作。
string temp = mystring.Replace("\n", "");
用“”replace“\ n”并不会给你想要的结果,这意味着你应该replace的实际上不是“\ n”,而是一些其他的字符组合。
一种可能性是你应该replace的是“\ r \ n”字符组合,它是Windows系统中的换行符。 如果只replace“\ n”(换行符)字符,它将保留“\ r”(回车)字符,该字符仍可能被解释为换行符,具体取决于显示string的方式。
如果string的来源是系统特定的,则应使用该特定的string,否则应使用Environment.NewLine获取当前系统的换行符组合。
string temp = mystring.Replace("\r\n", string.Empty);
要么:
string temp = mystring.Replace(Environment.NewLine, string.Empty);
这应该工作。
string temp = mystring.Replace("\n", "");
你确定在原始string中有实际的\ n新行吗?
string temp = mystring.Replace("\n", string.Empty).Replace("\r", string.Empty);
显然,这样做既去除了\ n和\ r,就像我知道如何去做一样简单。
如果你使用
string temp = mystring.Replace("\r\n", "").Replace("\n", "");
那么你将不必担心你的string来自哪里。
在Bytes.com上find :
string temp = mystring.Replace('\n', '\0');// '\0'
表示一个空字符
一个警告:在.NET中,换行是“\ r \ n”。 所以如果你从一个文件加载你的文本,你可能不得不使用它而不是“\ n”
编辑>正如samuel在评论中指出的,“\ r \ n”不是.NET特定的,但是是Windows专用的。
怎么样创build这样的扩展方法….
public static string ReplaceTHAT(this string s) { return s.Replace("\n\r", ""); }
然后,当你想要replace的地方,你可以做到这一点。
s.ReplaceTHAT();
最好的祝福!
这是你的确切答案…
const char LineFeed = '\n'; // #10 string temp = new System.Text.RegularExpressions.Regex( LineFeed ).Replace(mystring, string.Empty);
但是这一个更好…特别是如果你想分割线(你也可以使用它拆分)
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", " ");
@gnomixa – 你在评论中没有达到什么意思? 以下在VS2005中适用于我。
如果你的目标是删除换行符,从而缩短string,看看这个:
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);
如果您的目标是用空格字符replace换行符,并保持string长度相同,请看下面的示例:
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而不是字符,因为“'不是传递给Replace(string,char)的有效字符。
我知道这是一个旧post,但我想添加我的方法。
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" }, "");