パディングとは、文字列の先頭または末尾に空白または任意の Unicode 文字を挿入することです。文字列の先頭に空白または Unicode 文字を挿入することを、文字列を左からパディングするといいます。 C# には、これを実現するために使用できる PadLeft() というメソッドが用意されています。
String クラスには、PadLeft() メソッドの 2 つのオーバーロード形式が含まれています。
文字列は本質的に不変であるため、PadLeft() メソッドは、既存の文字列に文字を追加するのではなく、指定された文字を左側に追加した後、新しい文字列を返します。
構文:
両方のオーバーロード形式の String.PadLeft() メソッドの構文は次のとおりです。
public string PadLeft(int totalLength, char paddingChar);
説明:
上記の構文の PadLeft() メソッドは 2 つの引数を取ります。 1 つ目は、指定された文字を元の文字列の左側に追加した後にこのメソッドによって返される文字列の長さを指定する整数です。 2 番目のパラメータは、パディングに使用される Unicode 文字を指定するために使用されます。
public string PadLeft(int totalLength);
説明:
上記の構文の PadLeft() メソッドは、元の文字列の左側にスペースを追加した後の結果の文字列の長さを指定するために使用される整数である引数を 1 つだけ受け取ります。上記のオーバーロード形式の PadLeft() メソッドはどちらも、引数で指定された長さと同じ長さの文字列値を返します。
C# では、「System」名前空間に String というクラスが含まれています。このクラスは文字列操作の処理に使用され、文字列に対してさまざまな操作を実行するためのさまざまなメソッドを提供します。そのようなメソッドの 1 つは String.PadLeft() メソッドです。このメソッドは、指定された文字を先頭、つまり文字列の左側に追加し、指定された長さの新しい文字列を返すために使用されます。
したがって、String.PadLeft() メソッドは文字列を右にシフトします。
例:
string str = "Hello"; string resultedString = str.PadLeft(8, '@');
上記の例を使用して、左パディングの概念を理解してみましょう。ここでは、結果の文字列の全長を「8」として、パディング文字(つまり「@」)を渡すことで、文字列(str)に左パディングを適用しました。ここで、元の文字列の長さ、つまり「Hello」は 5 で、結果の文字列の長さは 8 にする必要があります。したがって、結果の文字列の左側に 3 つの '@' 文字が追加され、合計の長さ (文字列の長さ) になります。元の文字列に、結果の文字列内の埋め込み文字の数を加えたもの) は、整数引数を使用してメソッドに渡される長さと同じです。
ユーザーがメソッド内で Unicode パディング文字を指定していない場合、デフォルトで、Unicode パディング文字が指定された場合に追加されるのと同じ方法で、元の文字列の左側にスペースが追加されます。ここで、ユーザーが元の文字列の長さよりも短い結果の文字列の合計長を指定した場合、メソッドは既存のインスタンスへの参照を返します。
同様に、ユーザーが元の文字列の長さに等しい結果の文字列の合計長を指定した場合、メソッドは既存の文字列と同一の新しい文字列を返します。文字列は本質的に不変であるため、両方のオーバーロード形式の PadLeft() メソッドは、指定された文字を元の文字列の左側に埋め込んだ後、新しい文字列を返します。指定された合計の長さがゼロ未満の場合、String.PadLeft() メソッドは ArgumentOutOfRangeException を返します。
以下は C# String PadLeft メソッドの例です:
PadLeft() メソッドの基本機能を示す例。
コード:
using System; using System.Text; namespace ConsoleApp4 { public class Program { public static void Main(string[] args) { string str = "Hello World!"; try { //making the length of the string 15 //by adding 3 '@' characters at the beginning of the string string resultedStringWithChar = str.PadLeft(15, '@'); Console.WriteLine(resultedStringWithChar); //making the length of the string 15 //by adding 3 white spaces at the beginning of the string string resultedStringWithoutChar = str.PadLeft(15); Console.WriteLine(resultedStringWithoutChar); Console.ReadLine(); } catch(Exception ex) { Console.WriteLine(ex.Message); } } } }
出力:
出力では、結果の文字列の長さを 15 にするために、結果の文字列に 3 つの「@」文字が追加されていることがわかります。同様に、String.PadLeft() メソッドを 2 回目に使用したときは、文字を指定しませんでした。したがって、結果の文字列には 3 つの空白が追加されています。
必要な結果文字列の合計長が元の文字列の長さ以下で、合計の長さが 0 未満である場合のシナリオを示す例。
コード:
using System; using System.Text; namespace ConsoleApp4 { public class Program { public static void Main(string[] args) { string str = "Hello World!"; try { //providing total length as 12 //which is equal to the length of the original string string resultedStringWithChar = str.PadLeft(12, '@'); Console.WriteLine(resultedStringWithChar); //providing total length as 10 //which is less than the length of the original string string resultedStringWithoutChar = str.PadLeft(10); Console.WriteLine(resultedStringWithoutChar); resultedStringWithoutChar = str.PadLeft(-1); Console.WriteLine(resultedStringWithoutChar); Console.ReadLine(); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.ReadLine(); } } } }
出力:
配列の複数の文字列に PadLeft() メソッドを適用する例。
コード:
using System; using System.Text; namespace ConsoleApp4 { public class Program { public static void Main(string[] args) { string[] strArray = { "Lily", "Rose", "Jasmine", "Sunflower" }; char paddingChar = '#'; try { //accessing each string of the array //using 'foreach' loop foreach (string str in strArray) { //adding '#' at the start of each string Console.WriteLine(str.PadLeft(10, paddingChar)); //using PadLeft() method without specifying //any padding character Console.WriteLine(str.PadLeft(10)); } Console.ReadLine(); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.ReadLine(); } } } }
出力:
C# では、String.PadLeft() メソッドを使用して、指定した文字または空白を先頭に追加するか、文字列の左側に追加して、文字列を目的の長さにすることができます。このメソッドは「System」名前空間の下に存在し、2 つのオーバーロードされた形式を持ちます。
以上がC# 文字列パッド左の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。