我在
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中的变量?