10未満のint値は2桁の文字列に変換されます


119
string strI;   

for (int i = 1; i < 100; i++)
    strI = i.ToString();

ここで、もしi = 1、その後ToString利回り"1"

しかし、私は取得したいです "01""001"

かなり簡単に見えますが、記事は

datetime.ToString("yyyy-MM-dd")`

コンパイルして実行するコードを投稿するのが最善ですが、そうでtostirngはありません。また、プログラマーに対して、0x16進数の基数を参照していることを示唆しています。あなたは「先行ゼロ」を探しています。
Kobi

@Kobi申し訳ありませんが、私の母国語は英語ではなく、私の英語は実際には下手です。英語を上達させるために毎日英語学校に通っています。分かりますか?そして私は編集しましたtostirng
Sungguk Lim

それで大丈夫です。ほんのヒントです。とにかく、int.ToStringはと同じようにフォーマットを取ることができますDateTime.ToString
Kobi

回答:



12

受け入れられた答えは良くて速いです:

i.ToString("00")

または

i.ToString("000")

さらに複雑さが必要な場合は、String.Formatを試してみる価値があります。

var str1 = "";
var str2 = "";
for (int i = 1; i < 100; i++)
{
    str1 = String.Format("{0:00}", i);
    str2 = String.Format("{0:000}", i);
}

以下のためのi = 10ケース:

str1: "10"
str2: "010"

たとえば、これを使用して、フォーム上の特定のラベルコントロールのテキストを名前でクリアします。

private void EmptyLabelArray()
{
    var fmt = "Label_Row{0:00}_Col{0:00}";
    for (var rowIndex = 0; rowIndex < 100; rowIndex++)
    {
        for (var colIndex = 0; colIndex < 100; colIndex++)
        {
            var lblName = String.Format(fmt, rowIndex, colIndex);
            foreach (var ctrl in this.Controls)
            {
                var lbl = ctrl as Label;
                if ((lbl != null) && (lbl.Name == lblName))
                {
                    lbl.Text = null;
                }
            }
        }
    }
}


6

誰もこれを提案しなかったなんて信じられない:

int i = 9;
i.ToString("D2"); // Will give you the string "09"

または

i.ToString("D8"); // Will give you the string "00000009"

16進数が必要な場合:

byte b = 255;
b.ToString("X2"); // Will give you the string "FF"

ロケールの通貨記号を使用する場合は、「C」だけを使用して通貨として表示することもできます。こちらをご覧くださいhttps : //docs.microsoft.com/en-us/dotnet/api/system.int32.tostring?view=netframework-4.7.2#System_Int32_ToString_System_String_


5

このブログ投稿は、文字列をさまざまな形式にフォーマットしようとするときに便利な小さなチートシートです。

削除されたトロイの木馬へのリンク

編集する

サイト(または関連サイト)が悪意のあるソフトウェアを拡散している可能性があることをGoogleが一時的に警告したため、リンクは削除されました。現在はリストから外れており、問題があるとは報告されていません。グーグルの「SteveX String Formatting」には検索結果があり、自由にアクセスできます。


1
そのサイトは(今)トロイの木馬の警告を引き起こします。
Henk Holterman、2010年

0

このようにすることもできます

private static string GetPaddingSequence(int padding)
{
      StringBuilder SB = new StringBuilder();
      for (int i = 0; i < padding; i++)
      {
           SB.Append("0");
      }

      return SB.ToString();
  }

public static string FormatNumber(int number, int padding)
{
    return number.ToString(GetPaddingSequence(padding));
}

最後に、関数FormatNumberを呼び出します。

string x = FormatNumber(1,2);

出力は、パディングパラメータに基づく01になります。増やすと0の数が増えます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.