C#中有没有类似sprintf()
的东西?
例如,我想将一个整数转换为一个 2 字节的字节数组。
类似于:
int number = 17;
byte[] s = sprintf("%2c", number);
最佳答案
string s = string.Format("{0:00}", number)
第一个 0 表示“第一个参数”(即数字);冒号后的 00 是格式说明符(2 位数字)。
但是,请注意 .NET 字符串是 UTF-16,因此 2 个字符的字符串是 4 个字节,而不是 2 个
(编辑:问题从 string
更改为 byte[]
)
要获取字节,请使用编码
:
byte[] raw = Encoding.UTF8.GetBytes(s);
(显然不同的编码可能会给出不同的结果;UTF8 将为该数据提供 2 个字节)
实际上,第一位的较短版本是:
string s = number.ToString("00");
但是string.Format
版本更加灵活。
关于c# - 等价于 C# 中的 sprintf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/313006/