web-dev-qa-db-ja.com

文字列の先頭に「123」を追加して、12文字になるように埋め込むにはどうすればよいですか?

任意の文字列に「123」とゼロを追加する必要がありますが、結果の文字列は正確に12文字でなければなりません。

例えば:

28431 = 123000028431
987   = 123000000987
2     = 123000000002

C#でこれを行う方法

前もって感謝します

16
Gali

まあ、あなたは使うことができます:

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

つまり、タスクを半分に分割します。一方の部分は string.PadLeft を使用して「000028431」、「000000987」などの部分を生成し、もう一方は単純な文字列を使用して結果の前に「123」を付けます連結。

間違いなくもっと効率的なアプローチがありますが、これは、このタスクにとって効率が本当に重要であると信じる十分な理由がない限り、私が行うことです。

38
Jon Skeet
var result = string.Format("123{0}", number.PadLeft(9, '0'));
16
jgauffin

あなたは試すことができます:

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

または

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

想定しています...

  1. 文字列には、常に10進整数の表現が含まれていることがわかっています。
  2. 表現される整数は常に10未満です9

...これを行うことができます:

(123000000000 + long.Parse(s)).ToString()
2
Marcelo Cantos

まあ、1000000000未満の数値がある場合は、各数値に123000000000を追加するだけで済みます。

1
Narnian

このコードを試してください

            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());
0