当我需要打印“00000”时,我可以在python中使用“0”* 5。 C#中没有等效的循环吗?
答案 0 :(得分:5)
其中一个String ctor overloads将为您执行此操作:
string zeros = new String('0', 5);
答案 1 :(得分:5)
根据你的例子,我认为你将使用这些字符串来帮助填充一些数字。如果是这种情况,使用String.PadLeft()
方法进行填充会更容易。您也可以在python中使用类似的函数rjust()
。
如,
var str = "5";
var padded = str.PadLeft(8, '0'); // pad the string to 8 characters, filling in '0's
// padded = "00000005"
否则,如果您需要重复的字符串序列,则需要将String.Concat()
方法与Enumerable.Repeat()
方法结合使用。使用字符串构造函数只允许重复单个字符。
如,
var chr = '0';
var repeatedChr = new String(chr, 8);
// repeatedChr = "00000000";
var str = "ha";
// var repeatedStr = new String(str, 5); // error, no equivalent
var repeated = String.Concat(Enumerable.Repeat(str, 5));
// repeated = "hahahahaha"
答案 2 :(得分:4)
要添加到其他答案,您将无法将此字符串构造函数与另一个字符串一起使用来重复字符串,例如string s = new string("O", 5);
。这只适用于字符。
但是,您可以在添加Enumerable.Repeat()
后使用using System.Linq;
来获得字符串所需的结果。
string s = string.Concat(Enumerable.Repeat("O", 5));
答案 3 :(得分:2)
答案 4 :(得分:0)
根据您的应用程序,这也可能有用:
int n = 0;
string s = n.ToString().PadRight(5, '0');
答案 5 :(得分:0)
永远不要使用它:string.Join("0", new string[6]);
为什么不只是“00000”?! 鸭
答案 6 :(得分:0)
这个只适用于零:0.ToString("D5");