<br/>
すべてのcarrageリターンをC#のタグに置き換えようとしています。私はこれですべてがうまくいくと思いました:
StringBuilder sb = new StringBuilder(s);
sb.Replace(System.Environment.NewLine, @"<br/>");
しかし、明らかにそうではありません。キャッチしていないようですCR+LF
。
これは、Windows上にある可能性が高いCR+LFの場合に機能します。 Environment.NewLine
もちろん、文字列に実際に改行のみが含まれている状況や、キャリッジリターンのみが含まれている状況は検出されません。おそらくあなたが望む:
StringBuilder sb = new StringBuilder(s).Replace("\r\n", "<br/>")
.Replace("\n", "<br/>")
.Replace("\r", "<br/>");
(文字列にはバックスラッシュがなく、1行であるため、逐語的な文字列リテラルを使用しても意味がないことに注意してください"<br/>"
。)
確実に置換することがわかっている場合は、\ r \ n string.replaceを使用しないのはなぜですか?
s.replace("\r\n", "<br/>")
このコードによって
input.Replace("\r\n", "\n").Replace("\r", "\n").Replace("\n", "\r\n")
string ReplaceNewlines(string blockOfText, string replaceWith)
{
return blockOfText.Replace("\r\n", replaceWith).Replace("\n", replaceWith).Replace("\r", replaceWith);
}