Java:格式说明符%x和%h之间有什么区别?

前端之家收集整理的这篇文章主要介绍了Java:格式说明符%x和%h之间有什么区别?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
看看 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

猜你在找的Java相关文章