我有一个 ID 字段,当添加新记录时会自动递增 1。我不想按原样使用数字 ID,而是将其转换为由 0-9A-Z(无小写字母)组成的 6 个字符串,格式如下:
A00000
数字应该从 0-9 递增,然后是 AZ。
例子
例如,如果我要对数字进行编码7
,它应该返回:
A00007
如果我编码13
它应该返回的数字:
A0000D
如果我编码36
它应该返回的数字:
A00010
希望这是有道理的。任何帮助将不胜感激。
建议:整数值加上 604661760。那是 的以 10 为底的值A00000
,解释为以 36 为底的数字 ( = 10 * 36 ^ 5 )。
然后将结果编码为 base 36。
根据您的数据范围,您可能希望在添加 604661760 之前将其提升int
为 a 。long
您在这里所拥有的是从以 10 为底的数字到以 36 为底的数字的转换。这是一个从基数 10 转换为基数 K 的算法。修改它以满足您的需要:
http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/toBaseK.html