সি # তে স্ট্রিংয়ের ASCII মান কীভাবে পাবেন


108

আমি সি # তে একটি স্ট্রিং-এর অক্ষরের ASCII মান পেতে চাই।

যদি আমার স্ট্রিংয়ের মান "9quali52ty3" থাকে তবে আমি 11 টি অক্ষরের প্রত্যেকটির ASCII মান সহ একটি অ্যারে চাই।

আমি সি # তে কীভাবে ASCII মান পেতে পারি?


আপনার অর্থ কি আপনি কেবল বর্ণমালার অক্ষর চান না অঙ্কগুলি চান? সুতরাং আপনি ফলাফল হিসাবে "মানের" চান? এরপরে ASCII সম্পর্কে কথা বলার কোনও অর্থ নেই।
লার্স ট্রুইজনস

আমি সেই স্ট্রিং থেকে প্রতিটি চরিত্রের এসকি, ডিজিটের এসকিআই পাশাপাশি "মানের" শব্দের এসসিআই চাই
আরবিএস

আপনি যা বলতে চাইছেন তা হল আপনি স্ট্রিংয়ের প্রতিটি অক্ষরের সংখ্যাসূচক ASCII মান চান, ধরে নিলে পুরো স্ট্রিং ASCII তে প্রতিনিধিত্ব করা যায়। আপনার বর্তমান শব্দবন্ধ খুব বিভ্রান্তিকর।
বিজেএলএম

উত্তর:


189

এমএসডিএন থেকে

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


এটি আমাকে System.Byte [] দেখায়। শব্দটির মধ্যে আপনাকে অক্ষরের মধ্য দিয়ে লুপ করতে হবে। আপনি কীভাবে এটি কাজ করতে পেরেছেন তা নিশ্চিত নন। ওপিকে সাহায্য করেছে যদিও এটি গুরুত্বপূর্ণ।
নিকোসভি

দ্রষ্টব্য: Encoding.ASCIIASCII অক্ষর সংখ্যায় নেই এমন অক্ষরগুলির জন্য প্রতিস্থাপন অক্ষর ('?') এর জন্য ASCII কোড ইউনিট নির্গমন করতে কনফিগার করা হয়েছে। Encodingক্লাসে অন্যান্য বিকল্পগুলি - একটি ব্যতিক্রম ছোঁড়া সহ available উপলব্ধ । এবং অবশ্যই, অন্যান্য চরিত্রের এনকোডিংগুলি — বিশেষত ইউটিএফ -8 too এছাড়াও উপলব্ধ; একজনকে প্রশ্ন করা উচিত যে এটি আসলে আস্কি এএসসিআইআই কিনা?
টম ব্লডজেট

37
string s = "9quali52ty3";
foreach(char c in s)
{
  Console.WriteLine((int)c);
}

12
ফলস্বরূপ কোডগুলি ইউনিকোড নম্বর এবং সম্ভাব্যভাবে নন ASCII কোড থাকতে পারে।
লার্স ট্রুইজনস

22

এই কাজ করা উচিত:

string s = "9quali52ty3";
byte[] ASCIIValues = Encoding.ASCII.GetBytes(s);
foreach(byte b in ASCIIValues) {
    Console.WriteLine(b);
}

8

আপনার অর্থ কি আপনি কেবল বর্ণমালার অক্ষর চান না অঙ্কগুলি চান? সুতরাং আপনি ফলাফল হিসাবে "মানের" চান? একে একে একে ফিল্টার করার জন্য আপনি 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

4
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]);
    }

3
এই দেওয়া স্ট্রিং প্রতিটি charcter জন্য ASCII মান বাস্তবায়ন উদাহরণ অন্যতম
মহেশ

4
string text = "ABCD";
for (int i = 0; i < text.Length; i++)
{
  Console.WriteLine(text[i] + " => " + Char.ConvertToUtf32(text, i));
}

যদি আমি সঠিকভাবে মনে রাখি তবে ASCII মানটি ইউনিকোড সংখ্যার নিম্ন সাত বিটের সংখ্যা।


3

আপনি যদি স্ট্রিংয়ের প্রতিটি চরিত্রের জন্য চারকোড চান তবে আপনি এরকম কিছু করতে পারেন:

char[] chars = "9quali52ty3".ToCharArray();

3
byte[] asciiBytes = Encoding.ASCII.GetBytes("Y");
foreach (byte b in asciiBytes)
{
    MessageBox.Show("" + b);
}

3

এই প্রোগ্রামটি একাধিক চরিত্র গ্রহণ করবে এবং তাদের 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);
        }
    }
}

2

পূর্ববর্তী উত্তরদাতারা প্রশ্নের উত্তর দিয়েছিলেন তবে শিরোনামটি আমাকে প্রত্যাশিত তথ্য সরবরাহ করে নি। আমার একটি পদ্ধতি ছিল যা একটি চরিত্রের স্ট্রিং ফিরিয়েছিল তবে আমি এমন একটি চরিত্র চাইছিলাম যা আমি হেক্সাডেসিমাল রূপান্তর করতে পারি। নীচের কোডটি আমার মনে হয়েছে যা আমি মনে করি এটি অন্যের পক্ষে সহায়ক বলে আশা করি তা প্রদর্শন করে।

  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

3 163 এ 3

16 916 394

30 8730 221A



1

বা লিনকিউতে:

string value = "9quali52ty3";
var ascii_values = value.Select(x => (int)x);
var as_hex = value.Select(x => ((int)x).ToString("X02"));

0

আমি সি # তে একটি স্ট্রিং-এর অক্ষরের ASCII মান পেতে চাই।

প্রত্যেকে এই কাঠামোর উত্তর প্রদান করে। যদি আমার স্ট্রিংয়ের মান "9quali52ty3" থাকে তবে আমি 11 টি অক্ষরের প্রত্যেকটির ASCII মান সহ একটি অ্যারে চাই।

তবে কনসোলে আমরা খোলামেলা কাজ করি তাই আমরা একটি গৃহস্থালি পাই এবং ASCII কোডটি প্রিন্ট করি যদি আমার ভুল হয় তবে দয়া করে আমার উত্তরটি সংশোধন করুন।

 static void Main(string[] args)
        {
            Console.WriteLine(Console.Read());
            Convert.ToInt16(Console.Read());
            Console.ReadKey();
        }

এই উত্তরটি আরও কিছুটা ব্যাখ্যা ব্যবহার করতে পারে। আপনার যদি কোনও সহকর্মী ইংরেজিতে আরও সাবলীল থাকে তবে শ্রদ্ধার সাথে আপনার সাহায্য চাইতে হবে।
ও জোনস

আমার ব্যাখ্যাটি খুব সহজ কারণ আমার কোডটি কোনও ভেরিয়েবল ছাড়াই খুব সহজ তবে কীভাবে ASCII মান স্বতন্ত্র সরলভাবে একটি চর পেতে পারে এবং চরটিকে পূর্ণসংখ্যার মানতে রূপান্তর করতে পারে তাই একটি সহজ ধারণা ব্যবহার করা হয়েছে তাই দয়া করে আপনি এটি বাস্তবায়ন করুন এবং আমার ব্যাখ্যাতে যদি আমার ভুল হয় তবে দয়া করে আপনি এই ধন্যবাদ সংশোধন করুন
এম এ নাদিম

0

কেন পুরানো ফ্যাশন সহজ উপায় না?

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

-1
    string nomFile = "9quali52ty3";  

     byte[] nomBytes = Encoding.ASCII.GetBytes(nomFile);
     string name = "";
     foreach (byte he in nomBytes)
     {
         name += he.ToString("X02");
     }
`
     Console.WriteLine(name);

// এখন এটি আরও ভাল;)


1
এই কোডটি কীভাবে এবং কেন এই সমস্যার সমাধান করে তার ব্যাখ্যা সহ প্রশ্নটি সমাধান করতে পারে যদিও আপনার পোস্টের মান উন্নত করতে সত্যিই সহায়তা করবে এবং সম্ভবত আরও বেশি ভোটের ফলাফল হবে। মনে রাখবেন যে আপনি ভবিষ্যতে পাঠকদের জন্য প্রশ্নের উত্তর দিচ্ছেন, কেবল এখনই জিজ্ঞাসা করা ব্যক্তি নয়। দয়া করে সম্পাদনা ব্যাখ্যা যোগ করতে পারেন এবং সীমাবদ্ধতা এবং অনুমানের কি প্রয়োগ একটি ইঙ্গিত দিতে আপনার উত্তর।
ধর্ম

একটি সংকলন ত্রুটি দেয়: "অপ্রত্যাশিত অক্ষর"। টুস্ট্রিংয়ের পরে দুটি সম্ভবত সেখানে থাকা উচিত নয়।
বিডিএল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.