2011-09-17 37 views

Trả lời

5

Dựa trên ví dụ của bạn, tôi cho rằng bạn sẽ sử dụng các chuỗi này để giúp không làm tròn một số. Nếu đúng như vậy, sẽ dễ dàng hơn khi sử dụng phương thức String.PadLeft() để làm đệm của bạn. Bạn cũng có thể sử dụng hàm tương tự trong python, rjust().

ví dụ

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

Nếu không, nếu bạn cần một trình tự lặp đi lặp lại của chuỗi, bạn muốn sử dụng phương pháp String.Concat() kết hợp với các phương pháp Enumerable.Repeat(). Sử dụng hàm tạo chuỗi chỉ cho phép lặp lại một ký tự đơn.

ví dụ:

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

Một trong những String ctor overloads sẽ làm việc này cho bạn:

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

Có một sự khác biệt giữa 'chuỗi' và' chuỗi'? – Mob

+1

[Nope] (http://stackoverflow.com/questions/7074/in-c-sharp-what-is-the-difference-between-string-and-string) –

2

Sử dụng

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

Tìm thấy here

4

Để thêm vào các câu trả lời khác, bạn sẽ không thể sử dụng hàm tạo chuỗi này với một chuỗi khác để lặp lại các chuỗi, chẳng hạn như string s = new string("O", 5);. Điều này chỉ hoạt động với các ký tự.

Tuy nhiên, bạn có thể sử dụng Enumerable.Repeat() sau khi thêm using System.Linq; để đạt được kết quả mong muốn bằng chuỗi.

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

Không có hàm tạo nào lặp lại chuỗi, chỉ cho nhân vật. –

+0

@ Jeff Mercado Đó là những gì tôi đã nói. – Scott

+0

Ah oops, không nhận thấy bạn đã nói điều đó. Tốt hơn là bỏ qua mã không hoạt động để bạn không nhầm lẫn những người như tôi nghĩ rằng bạn đang đề xuất nó hoạt động hoặc ít nhất, định dạng mã để nó không xuất hiện như mã bình thường. :) –

0

Tùy thuộc vào ứng dụng của bạn, điều này có thể hữu ích quá:

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

Đừng bao giờ, không bao giờ sử dụng này: string.Join("0", new string[6]);

Tại sao không chỉ là "00000 "?! vịt

+0

Chống trả lời có thể tốt nếu bạn có thể cung cấp giải pháp tốt hơn. Đó chắc chắn là điều bạn không muốn làm nhưng viết ra chuỗi chữ có thể không phải lúc nào cũng khả thi. –

0

Cái này chỉ làm việc với zero: 0.ToString("D5");

Các vấn đề liên quan