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
相关产品推荐
相关产品推荐

