我想将数字转换为字符,例如:
- 如果数字 = 1 则 A
- 如果数字 = 26 则 Z
- 如果数字 = 27 则 AA
- 如果数字 = 676 则 ZZ
- 如果数字 = 456976 则 ZZZZ
试图找到任何可以帮助我的东西,但我没有任何运气。有人有使用 JavaScript 的示例吗?
谢谢!
最佳答案
您显示的数字转换似乎不一致。似乎您想将数字转换为等效的电子表格列字母,类似于这个 Python 问题:Convert spreadsheet number to column letter。
将该代码转换为 javascript(并稍微清理一下)可以得到:
function numToSSColumn(num){
var s = '', t;
while (num > 0) {
t = (num - 1) % 26;
s = String.fromCharCode(65 + t) + s;
num = (num - t)/26 | 0;
}
return s || undefined;
}
// A Z AA CZ DA YZ ZZ AAA
[0,1,26,27,104,105,676,702,703,
//AAZ ABA AZZ BAA BAZ BBA YYYZ ZZZZ
728,729,1378,1379,1404,1405,456976,475254].forEach(function(n) {
console.log(n + ' : ' + numToSSColumn(n));
});
该函数不检查输入,如果是 n < 0
则返回 undefined 。
您的转换似乎不起作用,因为电子表格列不是从 0 开始,而是从 1 开始,所以 A-Z 是 1 到 26,AA 到 AZ 是 27 到 52,依此类推。 676 是 YZ,456976 是 YYYZ。 ZZZZ为475254(或11110 base26);
关于javascript - 将数字转换为字母字符串 (Javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45787459/