Java中printf语句添加字符串后输出不完整,如何修复?
问题修复方案
你的问题出在printf的用法上,原代码的格式字符串只定义了一个数值占位符,且未包含"success! ~~~~"部分文本,同时多余的参数会被忽略,所以仅输出了格式化后的百分比。
正确写法1(推荐)
把所有输出内容整合到格式字符串里,仅传递percent一个参数即可:
System.out.printf("~~~~ %.2f%% success! ~~~~%n", percent);
%.2f%%负责格式化百分比数值(%%是输出单个%的转义写法)- 固定文本"success! ~~~~"直接写入格式字符串
%n是跨平台换行符,比硬写\n更通用
正确写法2(字符串拼接方式)
如果一定要用字符串拼接,需将格式字符串与固定文本拼接后传入printf,注意只传必要参数:
System.out.printf("~~~~ %.2f%%" + " success! ~~~~%n", percent);
这种写法冗余,不如第一种方式清晰直观。
原代码错误点说明
- 格式字符串未包含"success! ~~~~",因此这部分内容不会被输出
printf会根据格式字符串中的占位符数量匹配参数,你传了两个参数但只有一个占位符,第二个参数会被直接忽略- 代码里的换行用了裸换行符,Java字符串中应使用
\n或%n,否则会触发编译错误
内容的提问来源于stack exchange,提问作者Songline
相关产品推荐
相关产品推荐

