C# में किसी स्ट्रिंग को 64-बिट साइन्ड इंटीजर (long / Int64) में बदलने के लिए long.Parse() या long.TryParse() मेथड्स का उपयोग किया जाता है।
उदाहरण: Parse() का उपयोग
using System;
class Demo
{
static void Main()
{
string str = "6987646475767";
// Parse() - सफल होने पर मान लौटाता है, विफल होने पर अपवाद फेंकता है
long number = long.Parse(str);
Console.WriteLine($"स्ट्रिंग: {str}");
Console.WriteLine($"Long मान: {number}");
Console.WriteLine($"प्रकार: {number.GetType().Name}");
}
}
आउटपुट
स्ट्रिंग: 6987646475767 Long मान: 6987646475767 प्रकार: Int64
सुरक्षित रूपांतरण: TryParse() का उपयोग (अनुशंसित)
using System;
public class Demo
{
public static void Main()
{
string[] testStrings =
{
"6987646475767", // वैध
"-1234567890123", // वैध ऋणात्मक
"9999999999999999999999999", // बहुत बड़ा (ओवरफ्लो)
"abc123", // अवैध प्रारूप
"", // खाली स्ट्रिंग
" 123 ", // व्हाइटस्पेस के साथ
"123.45" // दशमलव (अवैध long के लिए)
};
foreach (string s in testStrings)
{
Console.Write($"इनपुट: \"{s}\" -> ");
if (long.TryParse(s, out long result))
{
Console.WriteLine($"सफल: {result}");
}
else
{
Console.WriteLine("विफल - अमान्य प्रारूप या रेंज से बाहर");
}
}
// व्हाइटस्पेस और नंबर स्टाइल्स के साथ
Console.WriteLine("\nNumberStyles के साथ:");
string withSpaces = " -456 ";
if (long.TryParse(withSpaces, System.Globalization.NumberStyles.Integer,
System.Globalization.CultureInfo.InvariantCulture, out long val))
{
Console.WriteLine($"\"{withSpaces}\" -> {val}");
}
}
}
आउटपुट
इनपुट: "6987646475767" -> सफल: 6987646475767 इनपुट: "-1234567890123" -> सफल: -1234567890123 इनपुट: "9999999999999999999999999" -> विफल - अमान्य प्रारूप या रेंज से बाहर इनपुट: "abc123" -> विफल - अमान्य प्रारूप या रेंज से बाहर इनपुट: "" -> विफल - अमान्य प्रारूप या रेंज से बाहर इनपुट: " 123 " -> विफल - अमान्य प्रारूप या रेंज से बाहर इनपुट: "123.45" -> विफल - अमान्य प्रारूप या रेंज से बाहर NumberStyles के साथ: " -456 " -> -456
Parse() बनाम TryParse()
| मेथड | व्यवहार | उपयोग करें जब |
|---|---|---|
long.Parse() | सफलता पर मान लौटाता है; विफलता पर FormatException, OverflowException, या ArgumentNullException फेंकता है | आप निश्चित हैं कि स्ट्रिंग वैध है |
long.TryParse() | बूलियन लौटाता है; आउट पैरामीटर में मान सेट करता है; कोई अपवाद नहीं फेंकता | उपयोगकर्ता इनपुट, फाइल पढ़ना, बाहरी डेटा - जहां वैधता अनिश्चित हो |
अन्य रूपांतरण विकल्प
// Convert.ToInt64() - null के लिए 0 लौटाता है, अन्यथा Parse जैसा
long val1 = Convert.ToInt64("12345");
long val2 = Convert.ToInt64(null); // 0 लौटाता है, अपवाद नहीं
// Int64.Parse() - long.Parse() का पूर्ण नाम
long val3 = Int64.Parse("12345");
महत्वपूर्ण बिंदु
longकी रेंज: -9,223,372,036,854,775,808 से 9,223,372,036,854,775,807TryParse()अपवाद हैंडलिंग के ओवरहेड से बचाता है- व्हाइटस्पेस वाले स्ट्रिंग्स के लिए
NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhiteउपयोग करें - संस्कृति-विशिष्ट प्रारूपों के लिए
CultureInfoपैरामीटर पास करें - हेक्साडेसिमल के लिए:
long.Parse("FF", NumberStyles.HexNumber)