Replace 関数を使用しているときに、値 "\r" や "\n" を置換しようとしたときに、予期しないことに気付きました。
外部 .cs ファイルに次のメソッドがあります (作業中):
public static string UrlEncode(string stringItem)
{
stringItem = stringItem.Replace("%", "%25").
Replace("\"", "%22").Replace("#", "%23").
Replace("\\", "%5C").Replace("&", "%26").
Replace("'", "%27").Replace("+", "%2B").
Replace("\r", "").Replace("\n", " ");
return stringItem;
}
これにより、目的の結果が得られます (つまり、新しい行が 1 つのスペースに置き換えられます)。
したがって、単一の「enter-key-press」で文字列を渡すと、代わりにスペースが格納されます。
私が理解していないこと (したがって質問です): なぜ、「Replace('\r', ' ')」または「Replace('\n', ' ')」のみを使用すると、改行。どちらか一方が機能していないことは理解できますが、なぜ両方を含める必要があるのでしょうか? '\r' または '\n' 置換メソッドのどちらも単独では機能しない場合、両方を使用しても機能するのはなぜですか?
私がこの質問をするのは、それを理解せずにコードを使用するのは (少なくとも私にとって) 非常に悪い習慣だからです。また、使用しようとしているコードを理解すればするほど、将来、状況に応じてその有用性を活用することができます。
------------------------- もうひとつの特徴 ----------------------- -----
Replace("\r", " ") のみを使用すると、(置換が機能したかのように) スペースが提供されますが、新しい行は削除されません。
または、Replace("\n", " ") のみを使用すると、新しい行が保持され、スペースが提供されます。
--------------- 最後の注意 ---------------------- ----------
問題がある場合、出力は cshtml ページのテキストエリアに表示されます。