2008年3月13日木曜日

String.Emptyの意外な使い方

String.Emptyは私たちが最もよく使うヌルオブジェクトの一つです。これは "" と同じです。"" と書くより見やすいですね。
String.Emptyの面白い使い方を見つけました。
たとえば、'a'を10個並べた文字列を作りたい場合皆さんでしたらどうされますか?

internal sealed class RegexFCD {
internal static RegexPrefix Prefix(RegexTree tree) {
string pref = String.Empty.PadRight(curNode._m, curNode._ch);
}
}

この作り方を見てください。
PadRightとは、指定された文字列の長さになるまである文字でもとの文字列を埋める関数です。
"3.1".PadRight(5, '0')とすれば"3.100"が帰ります。このように数字のゼロ埋めの際によく用いる関数ですが、
上のように用いることができるとはちょっと意外です。
curNode._m個のcurNode._chが並んだ文字列がprefになります。
ですから、先ほどの問題の答えは、
String.Empty.PadRight(10, 'a')
となります。もちろん、
String.Empty.PadLeft(10, 'a')
としてもかまいません。

1 件のコメント:

匿名 さんのコメント...

new String('a', 10)
で済んでしまうわけですが。