C# で文字を繰り返す最善の方法
C# で文字を繰り返す最も効率的で簡潔な方法は、string.PadRight または string.PadLeft メソッドを使用することです。
string.PadRight
このメソッドは、指定された文字数まで文字列を右詰めし、残りの部分を指定された文字で埋めます。
string originalString = "Hello";
string repeatedString = originalString.PadRight(10, 'o'); // "Helloooooo"
string originalString = "World";
string repeatedString = originalString.PadLeft(10, 'w'); // "wwwwwwworld"
注意:
- string.PadRight と string.PadLeft は、指定された文字数を文字列の長さよりも小さくすると、元の文字列がそのまま返されます。
- 繰り返しする文字が空白文字の場合は、string.PadRight と string.PadLeft の代わりに、string.Repeat メソッドを使用することもできます。
string.Repeat
string originalString = "abc";
string repeatedString = originalString.Repeat(3); // "abcabcabc"
C# で文字を繰り返す例
string.PadRight を使用した例
// 元の文字列
string originalString = "Hello";
// 右側に 'o' を追加して文字列を 10 文字に拡張
string repeatedString = originalString.PadRight(10, 'o');
// 結果を出力
Console.WriteLine(repeatedString); // "Helloooooo"
// 元の文字列
string originalString = "World";
// 左側に 'w' を追加して文字列を 10 文字に拡張
string repeatedString = originalString.PadLeft(10, 'w');
// 結果を出力
Console.WriteLine(repeatedString); // "wwwwwwworld"
// 元の文字列
string originalString = "abc";
// 文字列を 3 回繰り返す
string repeatedString = originalString.Repeat(3);
// 結果を出力
Console.WriteLine(repeatedString); // "abcabcabc"
繰り返しループを使用する
最も基本的な方法は、繰り返しループ(for ループ、while ループなど)を使用して文字を繰り返し追加することです。
string originalString = "Hello";
int repeatCount = 5;
string repeatedString = originalString;
for (int i = 0; i < repeatCount; i++) {
repeatedString += originalString;
}
Console.WriteLine(repeatedString); // "HelloHelloHelloHelloHello"
StringBuilder を使用する
より効率的な方法として、StringBuilder クラスを使用することができます。StringBuilder は、文字列を操作するための可変長の文字列バッファを提供します。
string originalString = "World";
int repeatCount = 3;
StringBuilder repeatedString = new StringBuilder();
for (int i = 0; i < repeatCount; i++) {
repeatedString.Append(originalString);
}
Console.WriteLine(repeatedString.ToString()); // "WorldWorldWorld"
LINQ を使用する
LINQ(Language-Integrated Query)を使用して、文字列を繰り返すこともできます。
string originalString = "abc";
int repeatCount = 4;
string repeatedString = Enumerable.Repeat(originalString, repeatCount).Aggregate((s1, s2) => s1 + s2);
Console.WriteLine(repeatedString); // "abcabcabcabc"
c# .net string