C#を利用する際、数字を特定の桁数に0埋めするケースはよくあります。
特に初心者の方にとって、この0埋めの方法はいくつか存在し、どれを利用するべきか迷うかもしれません。
この記事では、C#での0埋めの3つの主要な方法を取り上げ、それぞれの実装方法と速度について解説いたします。
- PadLeft(string型)で0埋めする方法
- ToString(int型)で0埋めする方法
- string.Format(int型)で0埋めする方法
- 3つの方法の速度の違い
PadLeft(string型)で0埋めする方法
PadLeft
メソッドは、文字列(string型)のインスタンスメソッドとして利用できます。
このメソッドを使用すると、指定した文字数になるように左側から特定の文字で埋めることができます。
文字列.PadLeft(埋める全体の文字数, 埋める文字);
class Program
{
static void Main()
{
var originalString = "123";
var paddedString = originalString.PadLeft(5, '0');
Console.WriteLine(paddedString); // 出力: "00123"
}
}
“123”という3桁の文字列を5桁になるように0で埋めています。
ToString(int型)で0埋めする方法
ToString
メソッドを使用して、int型の数字を0埋めする方法です。
このメソッドには形式指定子が利用でき、その中の”D”を利用して桁数を指定します。
数字.ToString("D桁数");
class Program
{
static void Main()
{
var originalNumber = 123;
var paddedString = originalNumber.ToString("D5");
Console.WriteLine(paddedString); // 出力: "00123"
}
}
123という数字を5桁の文字列になるように0で埋めています。
string.Format(int型)で0埋めする方法
string.Format
は、さまざまな型のデータを指定のフォーマットに従って文字列に変換するための方法です。
0埋めをする場合も形式指定子”D”を使用します。
string.Format("{0:D桁数}", 数字);
class Program
{
static void Main()
{
var originalNumber = 123;
var paddedString = string.Format("{0:D5}", originalNumber);
Console.WriteLine(paddedString); // 出力: "00123"
}
}
123という数字を5桁の文字列に変換しています。
PadLeft、ToString、string.Formatの速度
各0埋めの方法の速度には差が存在します。
実際のアプリケーションでのパフォーマンスを気にする場合、この速度の違いを知っておくと役立ちます。
using System;
using System.Diagnostics;
class Program
{
static void Main()
{
var stopwatch = new Stopwatch();
var original = "123";
stopwatch.Start();
for (var i = 0; i < 100000; i++)
{
original.PadLeft(5, '0');
}
stopwatch.Stop();
Console.WriteLine($"PadLeft: {stopwatch.ElapsedMilliseconds} ms");
stopwatch.Reset();
var number = 123;
stopwatch.Start();
for (var i = 0; i < 100000; i++)
{
number.ToString("D5");
}
stopwatch.Stop();
Console.WriteLine($"ToString: {stopwatch.ElapsedMilliseconds} ms");
stopwatch.Reset();
stopwatch.Start();
for (var i = 0; i < 100000; i++)
{
string.Format("{0:D5}", number);
}
stopwatch.Stop();
Console.WriteLine($"string.Format: {stopwatch.ElapsedMilliseconds} ms");
}
}
計測結果として、PadLeft
が最も速いことが確認されました。
ですが、毎回の実行でわずかな差しかない場合もありますので、具体的な数値は環境や条件によって異なる点を理解してください。
- 長く働いていても年収が全然上がらない...一気に年収を上げたい
- 残業をしたくてしているわけではないので、残業代はしっかりと出して欲しい
- やりたいことに挑戦させてもらえない...自分がしてみたいことに挑戦したい
- 通勤時間が長すぎるから、できるだけ短くしたい
- もっと勉強したいから、書籍代や資格の受験料など負担してくれるところに入りたい
- 現場に駆り出されてからは放置プレイ...相談できる人も先輩も居ないので、自分の状況をちゃんと理解してくれるところで働きたい
まとめ
C#での0埋めには、PadLeft
、ToString
、string.Format
の3つの主要な方法が存在します。
それぞれの方法には一長一短がありますが、速度を重視する場合はPadLeft
が最も推奨されます。
適切な方法を選択し、プログラミングをより効率的に行いましょう。