खोज…


स्ट्रिंग को पूर्णांक में परिवर्तित करना

string को integer स्पष्ट रूप से परिवर्तित करने के लिए विभिन्न विधियाँ उपलब्ध हैं, जैसे:

  1. Convert.ToInt16();

  2. Convert.ToInt32();

  3. Convert.ToInt64();

  4. int.Parse();

लेकिन इन सभी तरीकों से एक FormatException को फेंक दिया जाएगा, अगर इनपुट स्ट्रिंग में गैर-संख्यात्मक वर्ण हैं। इसके लिए, हमें उन्हें ऐसे मामलों में निपटने के लिए एक अतिरिक्त अपवाद हैंडलिंग ( try..catch ) लिखने की आवश्यकता है।


उदाहरणों के साथ स्पष्टीकरण:

तो, हमारे इनपुट हो:

string inputString = "10.2";

उदाहरण 1: Convert.ToInt32()

int convertedInt = Convert.ToInt32(inputString); // Failed to Convert 
// Throws an Exception "Input string was not in a correct format."

नोट: वही अन्य वर्णित विधियों के लिए जाता है - Convert.ToInt16(); और Convert.ToInt64();

उदाहरण 2: int.Parse()

int convertedInt = int.Parse(inputString); // Same result "Input string was not in a correct format.

हम इसे कैसे दरकिनार करते हैं?

जैसा कि पहले बताया गया था, अपवादों को संभालने के लिए हमें आमतौर पर एक try..catch आवश्यकता होती try..catch नीचे दिखाया गया है:

try
{
    string inputString = "10.2";
    int convertedInt = int.Parse(inputString);
}
catch (Exception Ex)
{
    //Display some message, that the conversion has failed.         
}

लेकिन, कोशिश करने try..catch जगह का उपयोग करना एक अच्छा अभ्यास नहीं होगा, और कुछ ऐसे परिदृश्य भी हो सकते हैं जहां हम इनपुट गलत होने पर 0 देना चाहते थे, (यदि हम उपरोक्त विधि का पालन करते हैं तो हमें 0 से convertedInt करने की आवश्यकता है पकड़ ब्लॉक)। ऐसे परिदृश्यों को संभालने के लिए हम एक विशेष विधि का उपयोग कर सकते हैं जिसे .TryParse() कहा जाता है।

.TryParse() विधि में एक आंतरिक अपवाद हैंडलिंग है, जो आपको out पैरामीटर को आउटपुट देगा, और एक बूलियन मान देता है जो रूपांतरण स्थिति का संकेत देता है ( true यदि रूपांतरण सफल हुआ था, तो false अगर यह विफल हुआ)। वापसी मूल्य के आधार पर हम रूपांतरण की स्थिति निर्धारित कर सकते हैं। आइए एक उदाहरण देखें:

उपयोग 1: एक बूलियन चर में रिटर्न वैल्यू स्टोर करें

 int convertedInt; // Be the required integer
 bool isSuccessConversion = int.TryParse(inputString, out convertedInt);

हम रूपांतरण स्थिति की जांच करने के लिए निष्पादन के बाद चर isSuccessConversion जांच कर सकते हैं। यदि यह बात गलत है तो का मान convertedInt हो जाएगा 0 (कोई वापसी मान की जाँच करने के लिए यदि आप चाहते हैं की जरूरत 0 रूपांतरण विफलता के लिए)।

उपयोग 2: if साथ रिटर्न मान की जाँच करें

if (int.TryParse(inputString, out convertedInt))
{
    // convertedInt will have the converted value
    // Proceed with that
}
else 
{
 // Display an error message
}

उपयोग 3: रिटर्न वैल्यू की जांच किए बिना आप निम्नलिखित का उपयोग कर सकते हैं, यदि आप रिटर्न वैल्यू के बारे में परवाह नहीं करते हैं (परिवर्तित या नहीं, 0 ठीक रहेगा)

int.TryParse(inputString, out convertedInt);
// use the value of convertedInt
// But it will be 0 if not converted


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow