C# でのキャリッジリターン

Saad Aslam 2023年10月12日
  1. C# でパラメータレスの Console.WriteLine() を使用し新しい行を追加する
  2. C# の同じ文字列内に新しい行を挿入する
  3. C# で Environment.NewLine を使用する
  4. C# で新しい行の ASCII リテラルを使用する
  5. C#\r\n 文字を使用して新しい行を挿入する
  6. C# の既存の文字列に対して ASP.NET に新しい行を挿入する
C# でのキャリッジリターン

この記事では、C# プログラミング言語を使用して文字列でキャリッジリターンを生成する方法について説明します。C# 文字列でのキャリッジリターンの作成は、別の方法で実行される場合があります。

C# 文字列でキャリッジリターンを構築するためにすべて同様に動作する次の手法を調べて実装します。

C# でパラメータレスの Console.WriteLine() を使用し新しい行を追加する

パラメータのない console.WriteLine() を使用するのが、コンソールプログラムに新しい行を追加するための最も簡単な方法です。例えば:

Console.WriteLine("This is a line");
Console.WriteLine();
Console.WriteLine("This is the second line");

出力:

This is a line

This is the second line

引数なしで Console.WriteLine() メソッドを使用すると、上記の Microsoft のドキュメントに示されているように、ラインターミネータが生成されます。便宜上、WriteLine() 関数は、2 行の各セットの間に 1つの改行を挿入します。

デフォルトの間隔に加えて、必要に応じてこの設定を変更できます。たとえば、Console.WriteLine() メソッドは、1 行ではなく 2 行を印刷するように書き直すことができます。

次のようなコードで問題が解決する場合があります。

Console.Out.NewLine = "\r\n\r\n";
Console.WriteLine("This is the first line");
Console.WriteLine();
Console.WriteLine("This is the second line");

コンソールは上記のコードを使用する場合があります。WriteLine() を使用して 2 行を挿入します。

したがって、文字列はこの方法で渡される可能性があります。WriteLine() を使用すると、現在の入力文字列が 1 行延長されます。

一方、コンソールにはパラメータがありません。1 行だけでなく、WriteLine() は 2 行を入力するようになりました。

このコードを使用すると、次のようなものが得られます。

This is the first line


This is the second line

最初のコンソールの後に、別の行があることに注意してください。2 番目のコンソールには WriteLine() を使用してから、2 行の空白行を使用します。

WriteLine() の 3 回目の呼び出しの後に、空白行が 1 行あります。

C# の同じ文字列内に新しい行を挿入する

文字列内の任意の場所に\n を配置することは、既存の文字列に新しい行を追加するための 2 番目のオプションです。例えば:

Console.WriteLine("This is a line.\nThis is the second line.");

上記のコードは、以下のように実行されます。

This is a line.
This is the second line.

お気づきのとおり、\n は同じ文字列内に新しい行を正常に挿入できました。

単一のバックスラッシュは、エスケープシーケンスと文字を使用して特定のアクションまたは機能を実行します。コード文字列リテラル内に挿入すると、エスケープシーケンスは、それ自体を二重引用符で囲んだものを除くすべてを表します。

エスケープシーケンスは翻訳される場合があります。文字列の間違いは、エスケープされたシーケンスの問題を引き起こします。 \t タブ、\a ビープ音。

C# で Environment.NewLine を使用する

\r\n は、Windows で newline に相当します。C# 文字列に新しい行を挿入する方法はいくつかありますが、最適な方法はソフトウェアによって異なります。

文字列で新しい行を開始する場合は、Environment.NewLine を使用できます。例えば:

Console.WriteLine("This is a line." + Environment.NewLine + "This is the second line.");

出力:

This is a line.
This is the second line.

上記のコードは、前の結果と同じ結果を生成します。

新しい行、改行、改行、キャリッジリターン、CRLF、および行の終わりは、NewLine の機能と組み合わせて使用​​した場合に同じことを意味します。エスケープ文字\r および\n または vbCrLf(Visual Basic の場合)などの新線文字は、言語固有の新線サポート Microsoft C# および C /C++ と組み合わせて NewLine とともに使用できます。

コンソールは、処理したテキストの後に新しい行を自動的に挿入します。行を追加するための WriteLine および StringBuilder クラスメソッド。

C# で新しい行の ASCII リテラルを使用する

この方法は\n に似ています。一方、代わりに新しい行を示す文字通りの ASCII 文字を使用することもできます。

例えば:

Console.WriteLine("This is a line. \x0AThis is the second line.");

出力:

This is a line.
This is the second line.

新しい行 x0A のこの ASCII リテラルは、同様に上記のテキストに新しい行を挿入します。

C#\r\n 文字を使用して新しい行を挿入する

\r\n を文字列に挿入して、新しい行を導入できます。例えば:

Console.WriteLine("This is a line. \r\nThis is the second line.");

出力:

This is a line.
This is the second line.

上記のコードは、\r\n を使用して新しい行を正しく挿入します。 \r\n\n の 2つの用語に大きな違いはありますか?

\n は新しい行を表し、\r はキャリッジリターンを表します。これはカーソルをドキュメントの左端に移​​動します。左から行の先頭から印刷するには、ラインフィードに \n を使用し、キャリッジリターンに\r を使用する必要があります。これは、Windows プラットフォームに保存されている古いコンピューターの構文によるものです。

  1. \r\n は Windows スタイルです
  2. \n は POSIX スタイルです
  3. \r は古い OSX 以前の Mac スタイルであり、最新の Mac は POSIX スタイルを使用しています

C# の既存の文字列に対して ASP.NET に新しい行を挿入する

HTML または ASP.NET の改行は、<br/> タグで表されます。多くの場合、新しい行を含む既存の文字列を、<br/> タグを含む HTML コードに変換する必要があります。

次の方法を使用して、正規表現を使用して文字列の新しい行を HTML の改行に変換できます。

public static string ConvertToLineBreaks(this string inputString) {
  Regex regEx = new Regex(@"(\\n|\\r)+");
  return regEx.Replace(inputString, "");
}

上記のアプローチは、拡張方法として使用することを目的としています。メソッドを別のファイルに含めてから、using ステートメントを使用してコードに含めます。

最後に、次のようにメソッドを呼び出します。

string html = inputString.ConvertToLineBreaks();

上記の正規式はここでテストできます。

著者: Saad Aslam
Saad Aslam avatar Saad Aslam avatar

I'm a Flutter application developer with 1 year of professional experience in the field. I've created applications for both, android and iOS using AWS and Firebase, as the backend. I've written articles relating to the theoretical and problem-solving aspects of C, C++, and C#. I'm currently enrolled in an undergraduate program for Information Technology.

LinkedIn

関連記事 - Csharp String