java - 如何在 Java 中正确格式化字符串?

标签 java string

我在用 Java 格式化字符串时遇到困难。我目前正在尝试做的是创建一个 toString 方法,它将以时钟格式打印出整数,如下所示:12:09:05,其中 12 是小时,9 是分钟,5 是秒。

这是我的时钟类中的代码,我一直在尝试着手格式化字符串:

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

最佳答案

您需要将这些值作为参数传递给 String.format():

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

关于java - 如何在 Java 中正确格式化字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36754429/

相关文章:

java - Maven 和自动构建其他 Eclipse 项目到您的 Web 应用程序

Java8 if 语句在 try-catch block 中替换为 FP 概念

java - 无法在 RejectionHandler 中获取 CallableThread

java - 如何将字符串转换为JsonArray?

php - 在 PHP 中使用 str_word_count 将数字作为单独的单词进行计数

java - 将 Int 转换为 String 时出现子字符串错误

Java 创建一个新文件,或覆盖现有文件

javascript - c# 如何从网站复制文本(不是源代码)

c++ - 删除在 C++ 中使用 malloc 分配的 std::string 数组

c++ - 如何分配 '-' 等于 ' ' 进行字符串类比较,这可能吗?