13 ответов:
С MSDN
string value = "9quali52ty3"; // Convert the string into a byte[]. byte[] asciiBytes = Encoding.ASCII.GetBytes(value);теперь у вас есть массив значения ASCII байтов. Я получил следующее:
57 Сто тринадцать Сто семнадцать Девяносто семь Сто восемь Сто пять Пятьдесят три Пятьдесят Сто шестнадцать Сто двадцать один 51
Это должно работать:
string s = "9quali52ty3"; byte[] ASCIIValues = Encoding.ASCII.GetBytes(s); foreach(byte b in ASCIIValues) { Console.WriteLine(b); }
вы имеете в виду, что вы хотите только буквенные символы, а не цифры? Так вы хотите "качество" в результате? Вы можете использовать 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]); }
byte[] asciiBytes = Encoding.ASCII.GetBytes("Y"); foreach (byte b in asciiBytes) { MessageBox.Show("" + b); }
string text = "ABCD"; for (int i = 0; i < text.Length; i++) { Console.WriteLine(text[i] + " => " + Char.ConvertToUtf32(text, i)); }Если я правильно помню, значение ASCII-это число нижних семи битов Unicode количество.
Если вы хотите код для каждого символа в строке, вы можете сделать что-то вроде этого:
char[] chars = "9quali52ty3".ToCharArray();
вы можете удалить BOM использование:
//Create a character to compare BOM char byteOrderMark = (char)65279; if (sourceString.ToCharArray()[0].Equals(byteOrderMark)) { targetString = sourceString.Remove(0, 1); }
эта программа будет принимать более одного символа и выводить их значение 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£Δ√a 97 61
£ 163 А3
Δ 916 394
√ 8730 221A
или в LINQ:
string value = "9quali52ty3";
var ascii_values = value.Select(x => (int)x);
var as_hex = value.Select(x => ((int)x).ToString("X02"));
Я хочу получить значение ASCII символов в строке в C#.
все дают ответ в этой структуре. Если моя строка имеет значение "9quali52ty3", я хочу массив со значениями ASCII каждого из 11 символов.
но в консоли мы работаем откровенно, поэтому мы получаем символ и печатаем код ASCII, если я ошибаюсь, поэтому, пожалуйста, исправьте мой ответ.
static void Main(string[] args) { Console.WriteLine(Console.Read()); Convert.ToInt16(Console.Read()); Console.ReadKey(); }
Comments