我最近开始学习Ruby,我看到了以下格式化字符串的方法:
"%d" % 123 #=> "123"
"%08b %02x" % [15, 15] #=> "00001111 0f"
有没有办法在C#中实现这一点?我尝试了很多,但所有尝试都失败了。以下是我尝试之一的示例:
public static string operator % (string format, IFormatable[] items) {
for (int n = 0; n < items.Length; n++) format.Replace("%" + n, items[n].ToString());
return format;
}
"%0 %1" % new string[] { "Foo", "Bar" } // Expected result => "Foo Bar"
我知道类似ToString()和PadLeft()的方法,但我想知道,如果所谓的方法扩展也适用于运算符。
答案 0 :(得分:1)
在方法Convert.ToString()
之间:
提供了将16位有符号整数的值转换为其等效字符串 在指定基础上的表示。
和ToString()
formats,您拥有所需的所有功能。您也可以使用String.PadLeft
向左添加0。
int num = 15;
string binNum = Convert.ToString(num, 2).PadLeft(8,'0'); // value 00001111
string hexNum = Convert.ToString(num, 16).PadLeft(2, '0'); // value 0f