Форматирование строки до 10 символов - PullRequest
6 голосов
/ 23 января 2012

В настоящее время я работаю над проектом, в котором мне нужно отформатировать строку длиной не более 10 символов. Но должен начинаться определенным образом и заканчиваться увеличивающимся счетчиком.

E.G число будет в формате:

0100000001
0100000002
0100000003
...
0100000010
0100000011

т.е. первые два числа останутся прежними, только последние цифры будут увеличиваться, но длина строки должна составлять 10 символов.

Как я мог это сделать, я пытался использовать String.Format, но, похоже, не работает.

UPDATE Я попытался использовать следующее

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

Этот вид работает, но как только messageCount становится больше 10, длина становится 11, и он должен оставаться не более 10

Ответы [ 5 ]

7 голосов
/ 23 января 2012

D8 означает формат в виде десятичного числа с максимум 8 ведущими нулями

string.Format("01{0}", counter.ToString("D8"));
5 голосов
/ 23 января 2012

попробуй

String.Format("01{0:00000000}", i);
3 голосов
/ 23 января 2012

Вы можете использовать это:

var counter = 11;
var fixedPart = "01";
var result = fixedPart + counter.ToString().PadLeft(8,'0');
1 голос
/ 23 января 2012

Вы пробовали с String.Format("00{0:00000000}", num)?

См. Числовые форматы Custum

0 голосов
/ 23 января 2012

Попробуй этот метод расширения ... Я не скомпилировал его, но дай знать, работает ли он: -)

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"
...