有没有办法将整数格式化为 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
(对于 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);
}
目前我在方法中有????
asnull
和一些特殊情况代码:
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);
}
}