整数をC#の同等のASCII / Unicode文字としてフォーマットする方法はありますか?たとえば、次のコードがある場合:
int n = 65;
string format = ""; // what?
string s = string.Format(format, n);
format
単一の文字「A」が書き込まれるようにするには、文字列に何を入力する必要がありますか?s
基本的に、Cで次のことを行うのと同等のものを探しています。
int n = 65;
char s[2];
char format = "%c";
sprintf(s, format, n); /* s <- 'A' */
編集
「charにキャストする」という明白な答えは役に立たないので、私がやろうとしていることについてもう少し説明する必要があります。
銀行口座のチェックディジットを表す整数値がありますが、一部の国では文字として出力し、その他の国では(0が埋め込まれた)数字列として出力する必要がある状況があります。フォーマット文字列を変更するだけで2つを切り替える方法があるのではないかと思います。そうすれば、国コードをキーにした適切なフォーマット文字列の辞書を保持できます。
編集2
(Odedの場合)このようなもの..。
IDictionary<string, string> ccFormat = new Dictionary<string, string>()
{
{ "GB", "{0:D}" }, // 0-9
{ "PT", "{0:D2}" }, // 00-99
{ "US", "{0:D3}" }, // 000-999
{ "IT", ???? } // A-Z -- What should ???? be?
};
string FormatCheckDigits(int digits, string country)
{
return string.Format(ccFormat[country], digits);
}
現在、私はメソッドにいくつかの特別なケースのコードを持って????
います:null
string FormatCheckDigits(int digits, string country)
{
string format = ccFormat[country];
if (string.IsNullOrEmpty(format))
{
// special case: format as A-Z
return ((char) digits).ToString();
}
else
{
// Use retrieved format string
return string.Format(format, digits);
}
}