C# में Char.Parse() मेथड निर्दिष्ट स्ट्रिंग के मान को उसके समतुल्य यूनिकोड वर्ण में परिवर्तित करता है। स्ट्रिंग में ठीक एक वर्ण होना चाहिए।
सिंटैक्स
public static char Parse (string str);
पैरामीटर str एक स्ट्रिंग है जिसमें एकल वर्ण होता है या null होता है।
उदाहरण 1: अक्षर पार्स करना
using System;
public class Demo
{
public static void Main()
{
string str = "a";
char res = Char.Parse(str);
Console.WriteLine("Value = " + str);
Console.WriteLine("Equivalent Unicode character = " + res);
}
}
आउटपुट
Value = a Equivalent Unicode character = a
उदाहरण 2: विशेष वर्ण पार्स करना
using System;
public class Demo
{
public static void Main()
{
string str = "#";
char res = Char.Parse(str);
Console.WriteLine("Value = " + str);
Console.WriteLine("Equivalent Unicode character = " + res);
}
}
आउटपुट
Value = # Equivalent Unicode character = #
अपवाद और एज केस
1. खाली स्ट्रिंग
try
{
char c = Char.Parse("");
}
catch (FormatException ex)
{
Console.WriteLine("FormatException: " + ex.Message);
// "String must be exactly one character long."
}
2. एक से अधिक वर्ण
try
{
char c = Char.Parse("ab");
}
catch (FormatException ex)
{
Console.WriteLine("FormatException: " + ex.Message);
// "String must be exactly one character long."
}
3. Null स्ट्रिंग
try
{
char c = Char.Parse(null);
}
catch (ArgumentNullException ex)
{
Console.WriteLine("ArgumentNullException: " + ex.Message);
}
सुरक्षित पार्सिंग: TryParse पैटर्न
Char.TryParse() (.NET Core 2.0+ / .NET 5+) अपवाद के बिना सुरक्षित पार्सिंग प्रदान करता है:
string[] inputs = { "a", "Z", "#", "", "ab", null };
foreach (var input in inputs)
{
if (char.TryParse(input, out char result))
{
Console.WriteLine($"'{input}' → '{result}' ✓");
}
else
{
Console.WriteLine($"'{input}' → पार्स विफल ✗");
}
}
आउटपुट
'a' → 'a' ✓ 'Z' → 'Z' ✓ '#' → '#' ✓ '' → पार्स विफल ✗ 'ab' → पार्स विफल ✗ '' → पार्स विफल ✗
Char.Parse() बनाम अन्य रूपांतरण
| मेथड | इनपुट | व्यवहार | अपवाद |
|---|---|---|---|
| Char.Parse() | स्ट्रिंग (लंबाई 1) | सटीक एक वर्ण आवश्यक | FormatException, ArgumentNullException |
| Char.TryParse() | स्ट्रिंग | बूलियन लौटाता है, आउट पैरामीटर | कोई नहीं |
| str[0] | स्ट्रिंग | पहला वर्ण एक्सेस (कोई जांच नहीं) | IndexOutOfRangeException यदि खाली |
| Convert.ToChar() | ऑब्जेक्ट | स्ट्रिंग, संख्या, आदि स्वीकार करता है | FormatException, ArgumentNullException |
मुख्य बिंदु
- इनपुट स्ट्रिंग की लंबाई ठीक 1 होनी चाहिए
- यूनिकोड वर्णों (इमोजी, CJK, आदि) के लिए सही काम करता है
- प्रदर्शन के लिए TryParse का उपयोग करें जब अमान्य इनपुट अपेक्षित हो
- सरणी एक्सेस
str[0]तेज है लेकिन सुरक्षा जांच नहीं करता