需要将分钟数计算为 int,然后将秒数计算为 double。方法应使用 Java 中的格式字符串

Required to calculate the number of minutes as an int, then the seconds as a double. method should use a format string in Java

我正在创建一个 public 方法字符串 toString()

要求是取一个随机生成的数字,即十分之一秒(例如 6500),并将其转换为整数分和双秒。

我需要使用这种格式字符串:"%s \t %d mins %.1f secs \t %s".

我正在努力解决这个问题,因为我创建了以下方法:

public String toString()
   {
      int time = 6500;
      int minutes = time / 600;
      double seconds = (time % 600) / 600;
      String displayTime = String.format("%s \t %d mins" + minutes, seconds  + "%.1f secs \t %s");

return this.getName() + ", " + displayTime;
    }

我收到一个错误:


java.util.MissingFormatArgumentException: Format specifier 'd'

需要return以下内容:

John Doe 19 mins 8.2 secs

我是这个网站的新手 Java,所以任何帮助都非常有帮助。

String.format() 不能这样工作。 例如:String.format("%s = %d", "joe", 35); 变量名称必须在末尾以逗号分隔,而不是在字符串的中间。

您需要更改代码,尤其是这一行:

String displayTime = String.format("%s \t %d mins" + minutes, seconds  + "%.1f secs \t %s");

至:

String name = getName(); //to get the string "John Doe"
String displayTime = String.format("%s \t %d mins %.1f secs \t", name, mins, seconds);

return name + "," + displayName; //we already have the name defined

要使其正常工作,变量名应位于末尾而不是中间。此外,字符串中“%”的数量应等于变量。例如,我上面回答中的第一个 %s 是姓名,接下来的 %d 是分钟,最后一个 %.1f 是秒数,直到小数点后一位。

你应该使用这个 link 来帮助你更多地理解这个概念:https://www.javatpoint.com/java-string-format

如果我的回答不合理,请随时在评论中问我。