मैं C # स्ट्रिंग में ASCII वर्णों का मान प्राप्त करना चाहता हूं।
यदि मेरे स्ट्रिंग का मान "9quali52ty3" है, तो मुझे 11 वर्णों में से प्रत्येक के ASCII मूल्यों के साथ एक सरणी चाहिए।
मैं C # में ASCII मान कैसे प्राप्त कर सकता हूं?
मैं C # स्ट्रिंग में ASCII वर्णों का मान प्राप्त करना चाहता हूं।
यदि मेरे स्ट्रिंग का मान "9quali52ty3" है, तो मुझे 11 वर्णों में से प्रत्येक के ASCII मूल्यों के साथ एक सरणी चाहिए।
मैं C # में ASCII मान कैसे प्राप्त कर सकता हूं?
जवाबों:
से MSDN
string value = "9quali52ty3";
// Convert the string into a byte[].
byte[] asciiBytes = Encoding.ASCII.GetBytes(value);
अब आपके पास बाइट्स के ASCII मान की एक सरणी है। मुझे निम्नलिखित मिला:
57 113 117 97 108 105 53 50 116 121 51
Encoding.ASCII
ASCII वर्ण सेट में नहीं हैं वर्णों के लिए प्रतिस्थापन चरित्र ('?') के लिए ASCII कोड इकाई का उत्सर्जन करने के लिए कॉन्फ़िगर किया गया है। अन्य विकल्प-एक अपवाद फेंकने सहित- Encoding
कक्षा में उपलब्ध हैं । और, निश्चित रूप से, अन्य चरित्र एन्कोडिंग- विशेष रूप से UTF-8- भी उपलब्ध हैं; एक सवाल करना चाहिए कि क्या यह ASCII है जो वास्तव में चाहता है।
string s = "9quali52ty3";
foreach(char c in s)
{
Console.WriteLine((int)c);
}
क्या आपका मतलब है कि आप केवल अक्षर वर्ण चाहते हैं और अंक नहीं? तो आप परिणामस्वरूप "गुणवत्ता" चाहते हैं? आप उन्हें एक-एक करके फ़िल्टर करने के लिए Char.IsLetter या Char.IsDigit का उपयोग कर सकते हैं।
string s = "9quali52ty3";
StringBuilder result = new StringBuilder();
foreach(char c in s)
{
if (Char.IsLetter(c))
result.Add(c);
}
Console.WriteLine(result); // quality
string value = "mahesh";
// Convert the string into a byte[].
byte[] asciiBytes = Encoding.ASCII.GetBytes(value);
for (int i = 0; i < value.Length; i++)
{
Console.WriteLine(value.Substring(i, 1) + " as ASCII value of: " + asciiBytes[i]);
}
यदि आप स्ट्रिंग में प्रत्येक वर्ण के लिए चारकोड चाहते हैं, तो आप कुछ ऐसा कर सकते हैं:
char[] chars = "9quali52ty3".ToCharArray();
यह कार्यक्रम एक से अधिक वर्णों को स्वीकार करेगा और उनके ASCII मूल्य का उत्पादन करेगा:
using System;
class ASCII
{
public static void Main(string [] args)
{
string s;
Console.WriteLine(" Enter your sentence: ");
s = Console.ReadLine();
foreach (char c in s)
{
Console.WriteLine((int)c);
}
}
}
इससे पहले के उत्तरदाताओं ने इस सवाल का जवाब दिया है लेकिन इस जानकारी को प्रदान नहीं किया है जिससे शीर्षक मुझे उम्मीद है। मेरे पास एक विधि थी जिसने एक चरित्र स्ट्रिंग लौटा दी लेकिन मुझे एक ऐसा चरित्र चाहिए था जिसे मैं हेक्साडेसिमल में बदल सकूं। निम्नलिखित कोड दर्शाता है कि मैंने क्या सोचा था कि मैं इस उम्मीद में पाऊँगा कि यह दूसरों के लिए उपयोगी है।
string s = "\ta£\x0394\x221A"; // tab; lower case a; pound sign; Greek delta;
// square root
Debug.Print(s);
char c = s[0];
int i = (int)c;
string x = i.ToString("X");
c = s[1];
i = (int)c;
x = i.ToString("X");
Debug.Print(c.ToString() + " " + i.ToString() + " " + x);
c = s[2];
i = (int)c;
x = i.ToString("X");
Debug.Print(c.ToString() + " " + i.ToString() + " " + x);
c = s[3];
i = (int)c;
x = i.ToString("X");
Debug.Print(c.ToString() + " " + i.ToString() + " " + x);
c = s[4];
i = (int)c;
x = i.ToString("X");
Debug.Print(c.ToString() + " " + i.ToString() + " " + x);
उपरोक्त कोड तत्काल विंडो में निम्न आउटपुट करता है:
a£Δ√
एक 97 61
£ 163 A3
4 916 394
1 8730 221 ए
आप BOM का उपयोग करके निकाल सकते हैं :
//Create a character to compare BOM
char byteOrderMark = (char)65279;
if (sourceString.ToCharArray()[0].Equals(byteOrderMark))
{
targetString = sourceString.Remove(0, 1);
}
मैं C # स्ट्रिंग में ASCII वर्णों का मान प्राप्त करना चाहता हूं।
हर कोई इस संरचना में उत्तर देता है। यदि मेरे स्ट्रिंग का मान "9quali52ty3" है, तो मुझे 11 वर्णों में से प्रत्येक के ASCII मूल्यों के साथ एक सरणी चाहिए।
लेकिन सांत्वना में हम खुलकर काम करते हैं, इसलिए हमें एक चार्ट मिलता है और अगर गलत है तो ASCII कोड प्रिंट करें ताकि कृपया मेरा उत्तर सही कर सकें।
static void Main(string[] args)
{
Console.WriteLine(Console.Read());
Convert.ToInt16(Console.Read());
Console.ReadKey();
}
क्यों नहीं पुराने जमाने का आसान तरीका?
public int[] ToASCII(string s)
{
char c;
int[] cByte = new int[s.Length]; / the ASCII string
for (int i = 0; i < s.Length; i++)
{
c = s[i]; // get a character from the string s
cByte[i] = Convert.ToInt16(c); // and convert it to ASCII
}
return cByte;
}
string nomFile = "9quali52ty3";
byte[] nomBytes = Encoding.ASCII.GetBytes(nomFile);
string name = "";
foreach (byte he in nomBytes)
{
name += he.ToString("X02");
}
`
Console.WriteLine(name);
// यह अब बेहतर है;)