You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java 17(IntelliJ IDEA环境)printf报错的解决方法

解决printf抛出UnknownFormatConversionException异常的问题

异常原因

你遇到的UnknownFormatConversionException是因为printf的用法错误。代码里的System.out.printf("Day pass: %" + cal);会将字符串拼接成类似Day pass: %53732的格式,Java的printf会把%后面的第一个字符(比如这里的5)当作格式转换符,但不存在%5这种合法的转换规则,因此触发异常。

修复代码

正确的printf用法是在格式字符串中使用合法的格式说明符(整数用%d),然后将变量作为参数传入:

System.out.printf("Day pass: %d", cal);

额外优化建议

  • 生成秒数时,Math.random() * 100会得到0-99的数值,但实际秒的范围应该是0-59,建议改成(int) (Math.random() * 60)
  • 计算总秒数的代码可以简化为更易读的写法:int calculate = hour * 3600 + minute * 60 + second;,和原代码结果一致

内容的提问来源于stack exchange,提问作者Bedirhan Aydın

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 21:25:24