मैं एक स्ट्रिंग को C # में पूर्णांक में कैसे बदलूं?
मैं एक स्ट्रिंग को C # में पूर्णांक में कैसे बदलूं?
जवाबों:
यदि आपको यकीन है कि यह सही तरीके से पार्स करेगा, तो उपयोग करें
int.Parse(string)
यदि आप नहीं हैं, तो उपयोग करें
int i;
bool success = int.TryParse(string, out i);
सावधान! नीचे के मामले में, i0 के बराबर होगा, 10 के बाद नहीं TryParse।
int i = 10;
bool failure = int.TryParse("asdf", out i);
इसका कारण यह है कि TryParseएक बाहर पैरामीटर का उपयोग करता है , एक रेफरी पैरामीटर नहीं।
int myInt = System.Convert.ToInt32(myString);
जैसा कि कई अन्य लोगों ने उल्लेख किया है, आप भी उपयोग कर सकते हैं int.Parse()और int.TryParse()।
यदि आप निश्चित हैं कि stringइच्छा हमेशा एक होगी int:
int myInt = int.Parse(myString);
यदि आप जांचना चाहते हैं कि क्या stringवास्तव में intपहला है:
int myInt;
bool isValid = int.TryParse(myString, out myInt); // the out keyword allows the method to essentially "return" a second value
if (isValid)
{
int plusOne = myInt + 1;
}
string varString = "15";
int i = int.Parse(varString);
या
int varI;
string varString = "15";
int.TryParse(varString, out varI);
int.TryParseतब से सुरक्षित है जब आप कुछ और डालते हैं varString(उदाहरण के लिए "fsfdsfs") तो आपको एक अपवाद मिलेगा। int.TryParseजब स्ट्रिंग को इंट में परिवर्तित नहीं किया जा सकता है, तब तक यह वापस आ जाएगा 0।
यदि आप सुनिश्चित हैं कि आपके पास अपनी स्ट्रिंग में "वास्तविक" संख्या है, या आप किसी भी अपवाद से सहज हैं जो उत्पन्न हो सकता है, तो इसका उपयोग करें।
string s="4";
int a=int.Parse(s);
प्रक्रिया पर कुछ और नियंत्रण के लिए, का उपयोग करें
string s="maybe 4";
int a;
if (int.TryParse(s, out a)) {
// it's int;
}
else {
// it's no int, and there's no exception;
}
4 तकनीकों को यहां बेंचमार्क किया गया है।
सबसे तेज़ तरीका निम्नलिखित निकला:
y = 0;
for (int i = 0; i < s.Length; i++)
y = y * 10 + (s[i] - '0');
"s" आपका स्ट्रिंग है जिसे आप इंट में बदलना चाहते हैं। यह कोड मानता है कि रूपांतरण के दौरान आपके पास कोई अपवाद नहीं होगा। इसलिए यदि आप जानते हैं कि आपका स्ट्रिंग डेटा हमेशा किसी प्रकार का इंट वैल्यू होगा, तो उपरोक्त कोड शुद्ध गति के लिए जाने का सबसे अच्छा तरीका है।
अंत में, "y" का आपका अंतर मान होगा।
bool result = Int32.TryParse(someString, out someNumeric)
इस विधि को परिवर्तित करने की कोशिश करेंगे someStringमें someNumeric, और वापसी एक resultनिर्भर करता है कि रूपांतरण, सफल हुआ trueहै, तो रूपांतरण सफल रहा है और falseरूपांतरण विफल रहा है। ध्यान दें कि यह विधि अपवाद को नहीं फेंकेगी यदि रूपांतरण विफल हो गया कि Int32.Parseविधि कैसे हुई और इसके बजाय यह शून्य के लिए वापस आती है someNumeric।
अधिक जानकारी के लिए, आप यहाँ पढ़ सकते हैं:
https://msdn.microsoft.com/en-us/library/f02979c7(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snxet-2
और
स्ट्रिंग बदलने के लिए कैसे C # में पूर्णांक