我想将整数转换为字母等价,如
HTML中的有序列表.
我试图将基数为10的数字转换为带有-z数字的基数26.
但那不是我想要的.
IN WANT GET
-----------------------
1 => a <= a
2 => b <= b
3 => c <= c
4 => d <= d
5 => e <= e
6 => f <= f
7 => g <= g
8 => h <= h
9 => i <= i
10 => j <= j
11 => k <= k
12 => l <= l
13 => m <= m
14 => n <= n
15 => o <= o
16 => p <= p
17 => q <= q
18 => r <= r
19 => s <= s
20 => t <= t
21 => u <= u
22 => v <= v
23 => w <= w
24 => x <= x
25 => y <= y
26 => z <= az
27 => aa <= aa
28 => ab <= ab
29 => ac <= ac
private final static char[] digits = {
'0','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'
};
private static String numberToAlphaNumeric(long i,int radix) {
char[] buf = new char[65];
int charPos = 64;
boolean negative = (i < 0);
if (!negative) {
i = -i;
}
while (i <= -radix) {
buf[charPos--] = digits[(int)(-(i % radix))];
i = i / radix;
}
buf[charPos] = digits[(int)(-i)];
if (negative) {
buf[--charPos] = '-';
}
return new String(buf,charPos,(65 - charPos));
}
public static String numberToAlphaNumeric(long number) {
ArrayList list = new ArrayList();
for( int j = 0; list.size() != number; j++ ) {
String alpha = numberToAlphaNumeric( j,digits.length );
if(!alpha.contains( "0" )) {
list.add( alpha );
}
}
return list.get( list.size()-1 );
}
我的第二个想法:
如果我将新的前导符号扩展为数字并将我的数字转换为基数为27的数字,
我在每次携带中都有新的符号,这是错误的,我可以过滤掉它们.
这是非常低效和丑陋的,但我没有更多的想法.常见的方法是什么?