2012-01-23 78 views
5

Tôi hiện đang làm việc trên một dự án mà tôi cần định dạng một chuỗi chỉ dài 10 ký tự. Nhưng phải bắt đầu theo một cách nhất định và kết thúc với một bộ đếm gia tăng.Chuỗi định dạng thành 10 ký tự

ví dụ số lượng sẽ được ở định dạng của:

0100000001 
0100000002 
0100000003 
... 
0100000010 
0100000011 

Tức là hai số đầu tiên sẽ giữ nguyên chỉ các chữ số cuối cùng sẽ tiếp tục tăng nhưng chuỗi phải dài 10 ký tự.

Làm cách nào tôi có thể thực hiện việc này mà tôi đã thử sử dụng String.Format nhưng có vẻ như không hoạt động.

CẬP NHẬT Tôi đã thử bằng cách sử dụng sau đây

destination = String.Format("07000000{0}", messageCount); 

này loại công trình nhưng khi messageCount được trên 10 độ dài trở thành 11 và nó cần phải ở lại không quá 10

+0

Vui lòng đăng mã mà bạn đã thử. – ChrisF

+0

đầu vào là gì và bạn đã thử những gì? – jeroenh

+1

bạn có thể sử dụng bộ đếm int cho 8 chữ số cuối cùng, chuyển đổi nó thành một chuỗi và sau đó nối với hai số đầu tiên (được lưu dưới dạng chuỗi) không? – turbo

Trả lời

4

thử

String.Format("01{0:00000000}", i); 
2

Bạn có thể sử dụng này:

var counter = 11; 
var fixedPart = "01"; 
var result = fixedPart + counter.ToString().PadLeft(8,'0'); 
+0

@DownVoter: Vui lòng giải thích, nếu không tôi không thể sửa câu trả lời. Dù sao, nó hoạt động như thế này, tôi đã thử nghiệm nó. –

+0

Không downvote nhưng đoán mọi người phản đối hướng dẫn OP ra khỏi 'String.Format()' – Filburt

7

D8 nghĩa là định dạng như một số thập phân với lên đến 8 zero hàng đầu

string.Format("01{0}", counter.ToString("D8")); 
+5

hoặc thậm chí đơn giản hơn: 'string.Format (" 01 {0: D8} ", messageCount);' – Filburt

0

Cung cấp cho phương pháp tiện ích mở rộng này một shot ... Tôi không biên dịch nó, nhưng hãy cho tôi biết nếu nó hoạt động :-)

public static class Ex 
{ 
    public static string ToSpecialString(this string value) 
    { 
    int desiredLength = 10; 
    string prefix = "01"; 
    string padding = new String('0', desiredLength - prefix.Length - value.Length); 
    return prefix + padding + value; 
    } 
} 

... usage ... 

Console.WriteLine("32".ToSpecialString()); 
// should output "0100000032" 
Các vấn đề liên quan