java 按位置格式化字符串_如何在Java中正确格式化字符串?

我在

Java中格式化String时遇到了困难.我目前要做的是创建一个toString方法,它将以时钟格式打印出整数,如:12:09:05,其中12是小时,9是分钟,5是秒.

这是我的Clock类中的代码我一直在努力设计格式化String:

//toString Method

public String toString(){

String result = String.format("%02d:%02d:%02d"), hour, minute, second;

return result;

}//End toString

我遇到的问题是,当我运行我的驱动程序时,一切正常,直到我尝试打印出时钟对象.

System.out.println(clock1);

我得到这个例外:

Exception in thread “main” java.util.MissingFormatArgumentException:

Format specifier ‘%02d’ at

java.util.Formatter.format(Formatter.java:2519) at

java.util.Formatter.format(Formatter.java:2455) at

java.lang.String.format(String.java:2940) at

Clock.toString(Clock.java:62) at

java.lang.String.valueOf(String.java:2994) at

java.io.PrintStream.println(PrintStream.java:821) at

TestClock.main(TestClock.java:69)

我已经阅读了字符串格式,我得到的是它与printf几乎相同.如果我在printf语句中使用它,我的代码工作正常.我查看了互联网上的示例,但它们都显示使用整数而不是变量的格式.

我希望有人可以通过正确的方式执行字符串格式化来启发我吗?我见过人们使用Formatter.format而不是String.format.我也想知道是否需要调用我的访问器而不是试图直接使用String中的变量?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值