Вопрос:
Я хочу создать приложение, в котором пользователь вводит номер, и программа будет отбрасывать символ пользователю.
Изменить: как насчет наоборот, изменение символа ascii на число?
Ответ №1
Вы можете использовать один из этих методов для преобразования числа в символ ASCII/Unicode/UTF-16:
Вы можете использовать эти методы, чтобы преобразовать значение указанного 32-разрядного целого числа со знаком в символ Юникода:
char c = (char)65; char c = Convert.ToChar(65);
Кроме того, ASCII.GetString декодирует диапазон байтов из массива байтов в строку:
string s = Encoding.ASCII.GetString(new byte[]{ 65 });
Имейте в виду, что ASCIIEncoding не обеспечивает обнаружение ошибок. Любой байт, превышающий шестнадцатеричный 0x7F, декодируется как знак вопроса Юникод ( “?” ).
Ответ №2
Изменить: по запросу я добавил чек, чтобы убедиться, что введенное значение находилось в диапазоне ASCII от 0 до 127. Если вы хотите ограничить это, зависит от вас. В С# (и, я считаю,.NET в целом), char представлены с использованием UTF-16, поэтому любое допустимое значение символа UTF-16 может быть введено в него. Однако, возможно, система не знает, как должен выглядеть каждый символ Юникода, чтобы он мог отображаться некорректно.
// Read a line of input string input = Console.ReadLine(); int value; // Try to parse the input into an Int32 if (Int32.TryParse(input, out value)) { // Parse was successful if (value >= 0 and value < 128) { //value entered was within the valid ASCII range //cast value to a char and print it char c = (char)value; Console.WriteLine(c); } } Ответ №3
вы можете просто бросить его.
char c = (char)100; Ответ №4
Чтобы получить ascii для числа, вы просто добавите значение char в целое число.
char ascii = ‘a’ int value = (int)ascii
Теперь переменное значение будет иметь значение 97, которое соответствует значению этого символа ascii
(Используйте эту ссылку для справки)
http://www.asciitable.com/index/asciifull.gif
Ответ №5
С# представляет символ в кодировке UTF-16, а не ASCII. Поэтому преобразование целого числа в символ не имеет никакого значения для A-Z и a-z. Но я работал с ASCII-кодами помимо алфавитов и номера, которые не работали для меня, поскольку система использует код UTF-16. Поэтому я просматривал код UTF-16 для всех символов UTF-16. Вот модуль:
void utfchars() { int i, a, b, x; ConsoleKeyInfo z; do { a = 0; b = 0; Console.Clear(); for (i = 1; i <= 10000; i++) { if (b == 20) { b = 0; a = a + 1; } Console.SetCursorPosition((a * 15) + 1, b + 1); Console.Write(«{0} == {1}», i, (char)i); b = b+1; if (i % 100 == 0) { Console.Write(«ntttPress any key to continue {0}», b); a = 0; b = 0; Console.ReadKey(true); Console.Clear(); } } Console.Write(«nnnnnnntttPress any key to Repeat and E to exit»); z = Console.ReadKey(); if (z.KeyChar == ‘e’ || z.KeyChar == ‘E’) Environment.Exit(0); } while (1 == 1); } Ответ №6
Я искал информацию о том, как конвертировать int в char, что привело меня сюда. Но мой вопрос состоял в том, чтобы преобразовать, например, int от 6 до char из ‘6’.
Для тех, кто пришел сюда, как я, вот как это сделать:
int num = 6; num.ToString().ToCharArray()[0];