C # में स्ट्रिंग को पूर्णांक में कैसे बदलें


जवाबों:


134

यदि आपको यकीन है कि यह सही तरीके से पार्स करेगा, तो उपयोग करें

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एक बाहर पैरामीटर का उपयोग करता है , एक रेफरी पैरामीटर नहीं।


2
@sslaitha, धन्यवाद। यदि इसने आपके प्रश्न का पर्याप्त उत्तर दिया है, तो कृपया इसे उत्तर के रूप में चिह्नित करना याद रखें।
ब्रैंडन

3
बस ध्यान दें कि अगर आपके पास int = 10 है; और int.TryParse ("asdf", आउट i) का उपयोग करें; कि मैं 0 नहीं 10 शामिल होंगे !!! ऐसा इसलिए है क्योंकि TryParse एक बाहरी चर का उपयोग करता है, रेफरी का नहीं।
कैफीक

2
"सावधानी" तीसरे उदाहरण पर लागू होती है - दूसरा नहीं। अगर मैं "इस" से ऊपर के उदाहरण को संदर्भित करने की अपेक्षा करता, तो मुझे थोड़ा सा आश्चर्य होता।
peter_mcc

22
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;
}


6
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


5

यदि आप सुनिश्चित हैं कि आपके पास अपनी स्ट्रिंग में "वास्तविक" संख्या है, या आप किसी भी अपवाद से सहज हैं जो उत्पन्न हो सकता है, तो इसका उपयोग करें।

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;
}


3
int i;
string whatever;

//Best since no exception raised
int.TryParse(whatever, out i);

//Better use try catch on this one
i = Convert.ToInt32(whatever);

2

4 तकनीकों को यहां बेंचमार्क किया गया है।

सबसे तेज़ तरीका निम्नलिखित निकला:

y = 0;
for (int i = 0; i < s.Length; i++)
       y = y * 10 + (s[i] - '0');

"s" आपका स्ट्रिंग है जिसे आप इंट में बदलना चाहते हैं। यह कोड मानता है कि रूपांतरण के दौरान आपके पास कोई अपवाद नहीं होगा। इसलिए यदि आप जानते हैं कि आपका स्ट्रिंग डेटा हमेशा किसी प्रकार का इंट वैल्यू होगा, तो उपरोक्त कोड शुद्ध गति के लिए जाने का सबसे अच्छा तरीका है।

अंत में, "y" का आपका अंतर मान होगा।


2
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 # में पूर्णांक



0

आप या तो उपयोग कर सकते हैं,

    int i = Convert.ToInt32(myString);

या

    int i =int.Parse(myString);

0
class MyMath
{
    public dynamic Sum(dynamic x, dynamic y)
    {
        return (x+y);
    }
}

class Demo
{
    static void Main(string[] args)
    {
        MyMath d = new MyMath();
        Console.WriteLine(d.Sum(23.2, 32.2));
    }
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.