问题
has been answered for integers printed in decimal format,但我正在寻找一个优雅的方式来做与非十进制格式的整数相同(如二进制,八进制,十六进制).
创建这样的字符串很容易:
String intAsString = Integer.toString(12345,8);
将创建一个具有整数值12345的八进制表示的字符串.但是如何格式化它,以使String具有10位数字,除了计算所需的零数和手工组装一个新的String.
一个典型的用例将是创建具有固定位数(如16,32,…)的二进制数,其中人们希望拥有包括前导零的所有数字.
解决方法
这样(标准Java):
private final static String ZEROES = "0000000000"; // ... String s = Integer.toString(12345,8); String intAsString = s.length() <= 10 ? ZEROES.substring(s.length()) + s : s;