Печать Python "0" * 5 эквивалент в C # - PullRequest
5 голосов
/ 17 сентября 2011

Когда мне нужно вывести «00000», я могу использовать «0» * 5 в python. Есть ли эквивалент в C # без циклов?

Ответы [ 7 ]

5 голосов
/ 17 сентября 2011

Исходя из вашего примера, я полагаю, что вы будете использовать эти строки, чтобы помочь заполнить нулями некоторые числа.Если это так, было бы проще использовать метод 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"
5 голосов
/ 17 сентября 2011

Одна из перегрузок String ctor сделает это за вас:

string zeros = new String('0', 5);
4 голосов
/ 17 сентября 2011

Чтобы добавить к другим ответам, вы не сможете использовать этот строковый конструктор с другой строкой для повторения строк, такой как string s = new string("O", 5);.Это работает только с символами.

Однако вы можете использовать Enumerable.Repeat() после добавления using System.Linq; для достижения желаемого результата со строками.

string s = string.Concat(Enumerable.Repeat("O", 5));
2 голосов
/ 17 сентября 2011

Используйте

 string s = new string( '0', 5 );

Найдено здесь

0 голосов
/ 17 сентября 2011

Этот работает только с нуля: 0.ToString("D5");

0 голосов
/ 17 сентября 2011

Никогда, никогда не используйте это: string.Join("0", new string[6]);

Почему не просто "00000" ?! утки

0 голосов
/ 17 сентября 2011

В зависимости от вашего приложения это также может быть полезно:

int n = 0;
string s = n.ToString().PadRight(5, '0');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...