如何解决如何将Java AtomicInteger值转换为三位数
我想有一个以001
和002
,003
开头的计数器。如何使用Java AtomicInteger
获得它?我只能得到1,2,3 ...
AtomicInteger counter = new AtomicInteger(0);
System.out.println(counter.incrementAndGet());
解决方法
String.format("%03d",5)
将返回字符串"005"
。您可以将System.out.print(String.format(pattern,values))
快捷键设置为System.out.printf(pattern,values)
(如果需要换行符,请在模式字符串的末尾添加\n
)。
此格式设置功能可用于图案。 %
开始一个模式。 d
表示:整数(f表示浮点数),3
表示:至少渲染3个字符,如果需要的话,更多,而0
表示:如果有,则用零填充您需要填充,因为该数字少于3个字符。因此,%03d
是以下模式:呈现数字,如果小于100的填充为零,则为3位数字。
阅读String.format
的javadoc,以获取更多信息。
由于Java仅在内部存储数字本身,因此您必须自己进行操作。
但这很容易用java.lang.String.format(String,Object...)
或System.out.printf
这样完成:
AtomicInteger counter = new AtomicInteger(0);
System.out.printf("%03d\n",counter.incrementAndGet());
counter.set(50);
System.out.println(String.format("%03d",counter.incrementAndGet()));
counter.set(100);
System.out.println(String.format("%03d",counter.incrementAndGet()));
输出:
001
051
101
,
它的行为是这样的,因为这是AtomicInteger的toString()返回的方法。如果要零,只需为其编写自己的方法即可。记住,它们现在是字符串。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。