ค่า int ต่ำกว่า 10 แปลงเป็นสตริงตัวเลขสองหลัก


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ไม่ถูกต้อง นอกจากนี้สำหรับโปรแกรมเมอร์0xแนะนำว่าคุณกำลังอ้างถึงฐานเลขฐานสิบหก คุณกำลังมองหา "เลขศูนย์นำหน้า"
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"

หากคุณต้องการเลขฐานสิบหก:

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" ของ Google คุณจะพบผลการค้นหาและเข้าชมได้ตามดุลยพินิจของคุณ


1
ไซต์นั้น (ตอนนี้) เรียกคำเตือนโทรจัน
Henk Holterman

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.