Преобразовать конвертировать int в алфавитное значение - PullRequest
0 голосов
/ 30 мая 2019

Я хотел бы преобразовать int между 1-26 в соответствующую алфавитную char букву

Я видел где-то, что я мог бы использовать char outPut = (char)currentValue; или Convert.ToChar(currentValue, но оба, похоже, неРабота.я проверяю это, заставив программу распечатать символ на консоль.обе попытки привели к печати пустого символа

я делаю программу, которая принимает char букву, преобразует ее в int, чтобы выполнить некоторые математические операции, а затем преобразует окончательный int обратно к char букве и выводит char на консоль

Ответы [ 3 ]

2 голосов
/ 30 мая 2019
char outPut = (char)currentValue;

даст вам символ, который представляет какой-либо символ пробела (поскольку они представлены в виде целых чисел до 32).

На самом деле вам нужен символ, представляющий букву ,Следующий код даст вам i-ю букву алфавита в нижнем регистре:

char c = (char)((int)'a' + i - 1);

или в верхнем регистре:

char c = (char)((int)'A' + i - 1);

В нем используется тот факт, что буквы представлены последовательными целыми числами.

1 голос
/ 30 мая 2019

Вы можете сместить на символ, который вы хотите.В этом случае я использую 'a'.

Console.WriteLine((char)(5 + 'a'));

Поскольку ваш диапазон начинается с 1, вам нужно использовать 'a'-1.

0 голосов
/ 30 мая 2019

int и char могут быть преобразованы назад и вперед с использованием таблицы ASCII

ASCII значение для A равно 65. Таким образом, вы можете получить char A, выполнив

char a = (char) 65;

чтобы преобразовать его обратно, используя представление 1-26, просто сделайте

int num = a - 65 + 1;

Вам нужно будет выполнить некоторую граничную проверку, чтобы убедиться, что число находится в пределах диапазона, конечно.

...