मैं एक स्ट्रिंग को C # में पूर्णांक में कैसे बदलूं?
मैं एक स्ट्रिंग को C # में पूर्णांक में कैसे बदलूं?
जवाबों:
यदि आपको यकीन है कि यह सही तरीके से पार्स करेगा, तो उपयोग करें
int.Parse(string)
यदि आप नहीं हैं, तो उपयोग करें
int i;
bool success = int.TryParse(string, out i);
सावधान! नीचे के मामले में, i
0 के बराबर होगा, 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 # में पूर्णांक