看看
specification page,我看到%h调用
Integer.toHexString(),但我找不到两个说明符之间的任何实际差异.
您能举例说明在同一输入上使用to说明符会产生不同的结果吗?
System.out.println(String.format("%1$h %1$x",123));
这打印
7b 7b
解决方法
%h说明符在其参数上调用hashCode(假设它不是null,当你得到“null”时),而%x说明符只是将其参数格式化为十六进制整数.如果格式化的东西不是整数,这会产生很大的不同.请参阅此处的示例:
http://developer.android.com/reference/java/util/Formatter.html
特别是,整数获得相同结果的事实是Integer.hashCode返回整数本身的结果:
http://docs.oracle.com/javase/6/docs/api/java/lang/Integer.html#hashCode%28%29