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सुझाव है कि आप हेक्साडेसिमल बेस का जिक्र कर रहे हैं। आप "अग्रणी शून्य" की तलाश में हैं।
कोबी

@ कोबी क्षमा करें, मेरी मूल भाषा अंग्रेजी नहीं है और मेरी अंग्रेजी वास्तव में खराब है। और मैं अपनी अंग्रेजी सुधारने के लिए रोज अंग्रेजी स्कूल जाता हूं। क्या आप मुझे समझ सकते हैं? और मैंने संपादित किया हैtostirng
सुंगगुक लिम

ठीक है। बस एक संकेत है। वैसे भी, int.ToString एक प्रारूप ले सकता है, जैसे DateTime.ToString
कोबी

जवाबों:



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"

आप मुद्रा के रूप में प्रदर्शित करने के लिए सिर्फ "सी" का उपयोग कर सकते हैं यदि आप मुद्रा प्रतीक का स्थान लेते हैं। यहाँ देखें: https://docs.microsoft.com/en-us/dotnet/api/system.int32.tostring?view=netframework-4.7.2.2#System_Int32_ToString_System_String_


5

यह ब्लॉग पोस्ट विभिन्न प्रकार के स्वरूपों को तार-तार करने की कोशिश में काम में रखने के लिए एक बहुत ही छोटा धोखा है।

ट्रोजन से लिंक हटाया गया

संपादित करें

लिंक को हटा दिया गया क्योंकि Google ने अस्थायी रूप से चेतावनी दी थी कि साइट (या संबंधित साइट) दुर्भावनापूर्ण सॉफ़्टवेयर फैला रही होगी। यह सूची से अब समस्याग्रस्त के रूप में रिपोर्ट नहीं की गई है। Google "स्टीवएक्स स्ट्रिंग फॉर्मेटिंग" आपको खोज परिणाम मिलेगा और आप इसे अपने विवेक पर देख सकते हैं।


1
वह साइट (अब) ट्रोजन चेतावनी को ट्रिगर करती है।
हेनक होल्टरमैन

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 की संख्या में वृद्धि होगी

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.