[C#]文字を繰り返したものを取得したい。

投稿日:

いちいちfor文とかで繰り返すのも効率が悪いなと思ってたので、処理を関数化・・・

ただ、共通関数として登録しないので、別のところで使いたい場合は、同じ関数が複数登録されちゃうことに・・・

更には、思いつきで余計な処理を付け出すと、他のところまで手が回らなくなるっていうのを避けたくて、そもそもStringクラスに何か用意されてるでしょと。

ループで実装する

多分こんな感じでFor文になるかな。

string repeat = "abc";
string result = "";
int loop = 10;

for(int i = 0; i < loop; i++)
{
	result += repeat;
}

でも、こんな処理を繰返しが欲しいところで随時記述してたら、馬鹿みたいにコードが長くなるし、何かあったときのメンテなんてやってられないw

関数化する

中身は変わってないけど、引数で繰り返したい文字列と回数を指定させるようにすると思う。

private string repeat_string(string repeat, int loop)
{
	string result = "";

	for(int i = 0; i < loop; i++)
	{
		result += repeat;
	}
}

でも、こういう汎用性が高い(?)であろうものは、出来ればPJ内だけでも共通関数として使えるようにしたい。

というか、用意されてるべきでは???

とはいえ、用意されてなければ自分で用意する必要があるし、共通処理とかにはあまり手を出したくない。

となると、Stringクラスで何か用意されてないかしらんっと。

特定の1文字を繰り返したい(文字列は除く)

stringではなくて、char型・・・要は1文字の繰返しでいいなら、という条件付。

string result = new string('a', 10);

これで、resultには「aaaaaaaaaa(a×10個)」が定義される。

ただ、もう少し柔軟にしたい。

というか、やりたいのは文字列の繰り返しなんだ・・・

文字列の繰返しを取得する

欲しいのは文字列の繰返したものであって、同じ文字が単純に並んだだけのものじゃない。

で、調べたら、.NET Framework3,5以降で出来るようになってた。

string repeat = "abc";
int loop = 10;
string result = string.Concat(Enumerable.Repeat(repeat, loop);

まとめ

.NET Framework3.5なら、Win7に標準搭載なので、なんにしろ使いやすいかも。

これで、0埋めでもスペース埋めでも何でも来いって感じ。

まぁ、そっちはPaddingを使った方が楽だけどw







-C#, 開発メモ
-,

関連記事

C#で計算時の切り上げ・切捨て・四捨五入を行う方法

普段使わないと馴染みが薄いですが、日常で行う計算にも切り上げ・切捨て・四捨五入は割りと使われていたりします。 今回はそんな計算のお話。 例えば、クルマ購入時の端数の切捨てとかね。 「千円の位を負けてく …

なぜ、エラーが発生する? VirtualBoxでのUbuntu Linuxの起動に再チャレンジ。

前回、会社で遊べる勉強できる環境としてUbuntu Linuxを導入しようと画策していました。 前回は、あえなく断念・・・ 日本の中心付近で仕様変更と闘うSE日記VMWareがだめだったから、Virt …

no image

C#で正規表現が使えたらな〜って時は以外と多いので、ちょっと正規表現を頑張って使ってみた。

あー、正規表現が使えたらな〜って時は以外と多いので、ちょっと正規表現を頑張って使ってみた。 別にC#に限らないんだけど、ソースの中に正規表現を書く時の書き方?っていうのかな。が分からなかったので、調べ …

BIOSパスワードの設定と解除方法

会社のPCでBIOSパスワードを設定してる人も多いかもしれない。 今回はそんなお話。 とあるPCを別の人に貸与することになって、設定とかが終わったんだけど、OSのインストール直後に渡されたみたいで、W …

改めて、コマンドプロンプトのrobocopyコマンドでバックアップを行う。

以前、会社では、バックアップ用のソフトを使っていたことがあります。 それも、社内ではなく、お客様用にw まぁ、それ自体は良いんですが、割とケチ?な会社だったので、使っているのはフリーソフト。 確か、商 …


カテゴリー