Я хочу создать приложение, в котором пользователь вводит число, и программа будет отбрасывать символ пользователю.Как преобразовать номер в символ ASCII?
Редактировать: Как насчет наоборот, изменение символа ascii на число?
Я хочу создать приложение, в котором пользователь вводит число, и программа будет отбрасывать символ пользователю.Как преобразовать номер в символ ASCII?
Редактировать: Как насчет наоборот, изменение символа ascii на число?
Вы можете использовать один из этих методов для преобразования числа в ASCII/Unicode/UTF-16 характер:
Вы можете использовать эти методы преобразования значения указанного 32-разрядного целого числа его Unicode характер:
char c = (char)65;
char c = Convert.ToChar(65);
Также ASCII.GetString
декодирует диапазон байтов из массива байтов в строку:
string s = Encoding.ASCII.GetString(new byte[]{ 65 });
Имейте в виду, что ASCIIEncoding
не обеспечивает обнаружение ошибок. Любой байт, превышающий шестнадцатеричный 0x7F, декодируется как знак вопроса Unicode («?»).
вы можете просто бросить его.
char c = (char)100;
Это не работает char c = (char) 48. c == 0 not 48 – nykwil
Edit: По желанию, я добавил проверку, чтобы убедиться, что введенное значение находится в пределах диапазона ASCII от 0 до 127. Если вы хотите, чтобы ограничить это до вас. В C# (и, я считаю, .NET в целом) char
s представлены с использованием 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);
}
}
Это работает, но вам нужно установить минимальные/максимальные границы для вашего целочисленного ввода.Не все числа преобразуются в отображаемые символы ASCII. – MadHenchbot
Как насчет преобразования символов ascii в число? –
@CyraxNguyen: Вы можете просто отличить другой путь. 'int i = (int) 'a';' Это поместит значение ascii буквы 'a' в' i'. – Cemafor
Чтобы получить ascii для числа, вы просто будете передавать значение char в целое число.
char ascii = 'a'
int value = (int)ascii
Значение переменной теперь будет иметь 97, который соответствует значению этого символов ASCII
(Используйте эту ссылку для справки) http://www.asciitable.com/index/asciifull.gif
С # представляет символ в 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("\n\t\t\tPress any key to continue {0}", b);
a = 0; b = 0;
Console.ReadKey(true); Console.Clear();
}
}
Console.Write("\n\n\n\n\n\n\n\t\t\tPress any key to Repeat and E to exit");
z = Console.ReadKey();
if (z.KeyChar == 'e' || z.KeyChar == 'E') Environment.Exit(0);
} while (1 == 1);
}
Я искал информацию о том, как преобразовать int в char, что привело меня сюда. Но мой вопрос состоял в том, чтобы преобразовать, например, int of 6 в char из '6'. Для тех, кто пришел сюда, как я, это то, как это сделать:
int num = 6;
num.ToString().ToCharArray()[0];
Или просто 'num + '0'' –
Пожалуйста, не редактируйте вопрос после того, есть ответы, чтобы сделать его новый вопрос (в этом случае обратного). Откройте новый вопрос. –