Как мне добавить «123» в начало строки и дополнить его ровно 12 символами? - PullRequest
15 голосов
/ 30 июня 2011

Мне нужно добавить «123» и нули для любой строки - но длина получаемой строки должна быть ровно 12 символов.

Например:

28431 = 123000028431
987   = 123000000987
2     = 123000000002

Как это сделать в C #?

спасибо заранее

Ответы [ 6 ]

34 голосов
/ 30 июня 2011

Ну, вы можете использовать:

string result = "123" + text.PadLeft(9, '0');

Другими словами, разделите задачу пополам - одна часть генерирует часть «000028431», «000000987» и т. Д., Используя string.PadLeft, а другая префикс результата - «123» с использованием простой строки конкатенация.

Без сомнения, есть более эффективные подходы, но это то, что я бы сделал, если бы у меня не было веской причины полагать, что эффективность действительно важна для этой задачи.

15 голосов
/ 30 июня 2011
var result = string.Format("123{0}", number.PadLeft(9, '0'));
4 голосов
/ 30 июня 2011

Вы можете попробовать:

var str = String.Format("123{0:0#########}", 28431);

или

var str = String.Format("123{0:000000000}", 28431);
2 голосов
/ 30 июня 2011

Предполагая ...

  1. Строки, как известно, всегда содержат представления десятичных целых чисел.
  2. Представленное целое число всегда меньше 10 9 .

... вы можете сделать это:

(123000000000 + long.Parse(s)).ToString()
1 голос
/ 30 июня 2011

Что ж, если у вас есть номера меньше 1000000000, вы можете просто добавить 123000000000 к каждому номеру.

0 голосов
/ 30 июня 2011

попробуйте этот код

            string argString ="28431 ";

            StringBuilder sb =new StringBuilder();
            sb.Append(argString);
            for (int i =  12 -argString.Length-3; i >0 ; i--)
            {
                 sb.Insert(0, "0");              
            }

            string result = string.Format("123{0}",sb.ToString());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...