所以我刚刚学习了Integer.toString(int x, int radix);
,我觉得它非常棒,因为它使得基本转换变得非常容易。
但是,我正在尝试使用Base-26拼音(a - z)编写,注意到Integer.toString()
遵循十六进制的示例,因为它以数字开头,然后使用字母(0 - p)。
我已经知道如何手动转换为Base-26,我不需要这些代码。但我想知道是否有一种方法可以利用Integer.toString()
,因为它几乎已经完成了所有繁重的任务。
有什么想法吗?
发布于 2017-01-19 11:58:58
您可以遍历char[]
,将Integer.toString
的输出转换到您想要的范围内。
public static String toAlphabeticRadix(int num) {
char[] str = Integer.toString(num, 26).toCharArray();
for (int i = 0; i < str.length; i++) {
str[i] += str[i] > '9' ? 10 : 49;
}
return new String(str);
}
发布于 2017-01-19 11:40:48
不是;the way that this method is implemented有效地保证了它从0-9开始,然后从a-f开始,如果基数超过16,则继续。
如果您想以自己的方式完成此操作,则需要自己执行偏移量。
https://stackoverflow.com/questions/41733231
复制相似问题