gpt4 book ai didi

c# - 如何将整数格式化为 ASCII/Unicode 字符(不只是转换为 char)

转载 作者:行者123 更新时间:2023-11-30 13:39:07 28 4
gpt4 key购买 nike

有没有办法在 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);
}

目前我有 ???? 作为 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);
}
}

最佳答案

您可以将 int 转换为 char:

string s = ((char)n).ToString();

无法告诉 string.Format 将整数格式化为字符。没有customstandard有助于解决此问题的数字格式字符串。

您当前的解决方案简单且有效,因此您应该保留它,除非您开始涉及更多复杂的选项。如果发生这种情况,您可能需要引入一个抽象,它将返回国家的正确表示(比如一个 CountryCheckDigitFormatter 将保存国家和每个国家的自定义 ToString 方法) .

关于c# - 如何将整数格式化为 ASCII/Unicode 字符(不只是转换为 char),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13627863/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com