[英]String.Replace(char, char) method in C#
如何將\n
替換為空白空間?
如果我這樣做,我會得到一個空的文字錯誤:
string temp = mystring.Replace('\n', '');
String.Replace('\n', '')
不起作用,因為''
不是有效的字符文字。
如果您使用 String.Replace(string, string) 覆蓋,它應該可以工作。
string temp = mystring.Replace("\n", "");
由於將“\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);
顯然,這會同時刪除 '\n' 和 '\r' 並且就像我知道的那樣簡單。
這應該有效。
string temp = mystring.Replace("\n", "");
您確定原始字符串中有實際的 \n 新行嗎?
如果你使用
string temp = mystring.Replace("\r\n", "").Replace("\n", "");
那么你就不必擔心你的字符串來自哪里。
在Bytes.com上找到:
string temp = mystring.Replace('\n', '\0');// '\0'
代表一個空字符
一個警告:在 .NET 中,換行符是“\r\n”。 因此,如果您要從文件中加載文本,則可能必須使用它而不是僅使用 "\n"
編輯>正如塞繆爾在評論中指出的那樣,“\r\n”不是 .NET 特定的,而是 windows 特定的。
創建這樣的擴展方法怎么樣......
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);
但是這個要好得多...特別是如果您嘗試拆分行(您也可以將其與拆分一起使用)
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);
我知道這是一篇舊帖子,但我想添加我的方法。
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", " ");
@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) 的有效字符
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.