Преобразуйте целое число в его символьный эквивалент, где 0 => a, 1 => b и т. Д. - PullRequest
160 голосов
/ 30 июня 2010

Я хочу преобразовать целое число в его символьный эквивалент на основе алфавита.Например:

0 => a
1 => b
2 => c
3 => d

и т. Д.Я мог бы создать массив и просто посмотреть его, когда мне это нужно, но мне интересно, есть ли встроенная функция, чтобы сделать это для меня.Все примеры, которые я нашел через Google, работают со значениями ASCII, а не с позицией символа в алфавите.

Ответы [ 12 ]

0 голосов
/ 04 сентября 2016

Предполагая, что вам нужны заглавные буквы:

function numberToLetter(num){
        var alf={
            '0': 'A', '1': 'B', '2': 'C', '3': 'D', '4': 'E', '5': 'F', '6': 'G'
        };
        if(num.length== 1) return alf[num] || ' ';
        return num.split('').map(numberToLetter);
    }

Пример:

numberToLetter ('023') равно ["A", "C"," D "]

numberToLetter ('5') равно " F "

number to letter function

0 голосов
/ 17 сентября 2015
public static string IntToLetters(int value)
{
string result = string.Empty;
while (--value >= 0)
{
result = (char)('A' + value % 26 ) + result;
value /= 26;
}
return result;
}

Чтобы соответствовать требованию A быть 1 вместо 0, я добавил - в условие цикла while и удалил значение - из конца цикла, если кто-то хочет, чтобы это было 0 для их собственного цели, вы можете отменить изменения, или просто добавить значение ++; в начале всего метода.

...