prosseek
prosseek

Reputation: 190979

Python's print "0"*5 equivalent in C#

When I need to print "00000", I can use "0"*5 in python. Is there equivalent in C# without looping?

Upvotes: 5

Views: 358

Answers (7)

Jeff Mercado
Jeff Mercado

Reputation: 134491

Based on your example I figure you're going to be using these strings to help zero-pad some numbers. If that's the case, it would be easier to use the String.PadLeft() method to do your padding. You could be using the similar function in python as well, rjust().

e.g.,

var str = "5";
var padded = str.PadLeft(8, '0'); // pad the string to 8 characters, filling in '0's
// padded = "00000005"

Otherwise if you need a repeated sequence of strings, you'd want to use the String.Concat() method in conjunction with the Enumerable.Repeat() method. Using the string constructor only allows repetition of a single character.

e.g.,

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"

Upvotes: 5

Scott
Scott

Reputation: 999

To add to the other answers, you won't be able to use this string constructor with another string to repeat strings, such as string s = new string("O", 5);. This only works with chars.

However, you can use Enumerable.Repeat() after adding using System.Linq; to achieve the desired result with strings.

string s = string.Concat(Enumerable.Repeat("O", 5));

Upvotes: 4

longda
longda

Reputation: 10433

This one only works with zero: 0.ToString("D5");

Upvotes: 0

longda
longda

Reputation: 10433

Don't ever, ever use this: string.Join("0", new string[6]);

Why not just "00000" ?! ducks

Upvotes: 0

bweaver
bweaver

Reputation: 143

Depending on your application, this may be useful too:

int n = 0;
string s = n.ToString().PadRight(5, '0');

Upvotes: 0

Ray Toal
Ray Toal

Reputation: 88428

Use

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

Found here

Upvotes: 2

Jay Riggs
Jay Riggs

Reputation: 53603

One of the String ctor overloads will do this for you:

string zeros = new String('0', 5);

Upvotes: 5

Related Questions